lab3 commit

This commit is contained in:
Imants Pulkstenis
2019-11-27 21:06:46 +02:00
parent 0d8739ecf2
commit 9568856d56
2 changed files with 116 additions and 45 deletions
+72
View File
@@ -0,0 +1,72 @@
#include <msp430xG46x.h>
// šeit ir vieta segmentu definīcijām
#define sa 0x00
#define sb 0x00
#define sc 0x00
#define sd 0x00
#define se 0x00
#define sf 0x00
#define sg 0x00
#define sh 0x00
// zīmju ģeneratora tabulu, aizpildām atbilstoši norādītajiem zīmju
const char s_gen[] =
{
sa, // 0
sb, // 1
sc, // 2
sd, // 3
se, // 4
sf, // 5
sg, // 6
sh, // 7
sa + sb, // 8
sb + sc, // 9
sc + sd, // A
sd + se, // b
se + sf, // C
sf + sg, // d
sg + se, // E
se + sc // F
};
void main(void)
{
unsigned int i;
int j;
int k;
unsigned int offset = 2;
const unsigned int delay = 60000;
WDTCTL = WDTPW + WDTHOLD; // Apturam WDT
// LCD_A
LCDACTL = LCDFREQ_128 + LCD4MUX + LCDON;
LCDAPCTL0 = 0x7E;
P5SEL = 0x1C;
for (j = 0; j < 11; j++)
{
LCDMEM[j + offset] = 0;
}
for (j = 0; j < 11; j++)
{
LCDMEM[j + offset] = 0xFF;
for (i = delay; i > 0; i--)
;
}
for (j = 0; j < 12; j++)
{
LCDMEM[j + offset] = 0;
for (i = delay; i > 0; i--)
;
}
j = 0;
k = 0;
while (1)
{
LCDMEM[k + offset] = s_gen[0xF & j];
for (i = delay; i > 0; i--)
;
j++;
k++;
if (k > 6)
k = 0;
}
}
+44 -45
View File
@@ -8,53 +8,52 @@
#define LED2 0x02 // P2.1 #define LED2 0x02 // P2.1
// konstantes // konstantes
#define BMASK POGA1 + POGA2 // Pogu maska #define BMASK POGA1 + POGA2 // Pogu maska
#define B_DEL_VAL 10 // Šo mēs mainīsim pēc algoritma izveides #define B_DEL_VAL 10 // Šo mēs mainīsim pēc algoritma izveides
void main(void) void main(void)
{ {
// mainīgie // mainīgie
unsigned char Butt_S1 = POGA1 + POGA2; unsigned char Butt_S1 = POGA1 + POGA2;
unsigned char B_Del_Cnt = B_DEL_VAL; unsigned char B_Del_Cnt = B_DEL_VAL;
unsigned char X; // starprezultātu glabāšana unsigned char X; // starprezultātu glabāšana
// aparatūras sākuma inicializācija // aparatūras sākuma inicializācija
WDTCTL = WDTPW+WDTHOLD; // apturam WDT WDTCTL = WDTPW + WDTHOLD; // apturam WDT
P2DIR = LED1 + LED2; // pārslēdzam uz izeju P2DIR = LED1 + LED2; // pārslēdzam uz izeju
P2OUT |= LED1 + LED2; // ieslēdzam abas diodes P2OUT |= LED1 + LED2; // ieslēdzam abas diodes
// programmas galvenais cikls // programmas galvenais cikls
while(1) while (1)
{ {
X=P1IN & BMASK; X = P1IN & BMASK;
if(X == Butt_S1) if (X == Butt_S1)
{ {
// pogas nav mainījušās // pogas nav mainījušās
B_Del_Cnt--; B_Del_Cnt--;
if(B_Del_Cnt == 0) if (B_Del_Cnt == 0)
{ {
// kontaktu drebēšana ir beigusies // kontaktu drebēšana ir beigusies
// Pogu apstrāde // Pogu apstrāde
if( (Butt_S1 & POGA1) == 0) if ((Butt_S1 & POGA1) == 0)
{ {
P2OUT |= LED1; P2OUT |= LED1;
} }
if( (Butt_S1 & POGA2) == 0) if ((Butt_S1 & POGA2) == 0)
{ {
P2OUT &= ~LED1; P2OUT &= ~LED1;
} }
B_Del_Cnt = B_DEL_VAL; B_Del_Cnt = B_DEL_VAL;
// atkārtojam apstrādi // atkārtojam apstrādi
} }
} }
else else
{ {
// NEWSTAT // NEWSTAT
Butt_S1 = X; Butt_S1 = X;
// jaunā vērtība // jaunā vērtība
B_Del_Cnt = B_DEL_VAL; B_Del_Cnt = B_DEL_VAL;
} }
// NEXT // NEXT
// te būs citi, programmas galvenajā ciklā veicamie darbi // te būs citi, programmas galvenajā ciklā veicamie darbi
}; };
} }