diff --git a/labd3-2.c b/labd3-2.c new file mode 100644 index 0000000..6807702 --- /dev/null +++ b/labd3-2.c @@ -0,0 +1,72 @@ +#include +// š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; + } +} \ No newline at end of file diff --git a/labd3.c b/labd3.c index 2c31468..beb60a8 100644 --- a/labd3.c +++ b/labd3.c @@ -8,53 +8,52 @@ #define LED2 0x02 // P2.1 // konstantes -#define BMASK POGA1 + POGA2 // Pogu maska -#define B_DEL_VAL 10 // Šo mēs mainīsim pēc algoritma izveides - +#define BMASK POGA1 + POGA2 // Pogu maska +#define B_DEL_VAL 10 // Šo mēs mainīsim pēc algoritma izveides void main(void) { -// mainīgie -unsigned char Butt_S1 = POGA1 + POGA2; -unsigned char B_Del_Cnt = B_DEL_VAL; -unsigned char X; // starprezultātu glabāšana + // mainīgie + unsigned char Butt_S1 = POGA1 + POGA2; + unsigned char B_Del_Cnt = B_DEL_VAL; + unsigned char X; // starprezultātu glabāšana -// aparatūras sākuma inicializācija -WDTCTL = WDTPW+WDTHOLD; // apturam WDT -P2DIR = LED1 + LED2; // pārslēdzam uz izeju -P2OUT |= LED1 + LED2; // ieslēdzam abas diodes -// programmas galvenais cikls -while(1) -{ -X=P1IN & BMASK; -if(X == Butt_S1) -{ -// pogas nav mainījušās -B_Del_Cnt--; -if(B_Del_Cnt == 0) -{ -// kontaktu drebēšana ir beigusies -// Pogu apstrāde -if( (Butt_S1 & POGA1) == 0) -{ -P2OUT |= LED1; -} -if( (Butt_S1 & POGA2) == 0) -{ -P2OUT &= ~LED1; -} -B_Del_Cnt = B_DEL_VAL; -// atkārtojam apstrādi -} -} -else -{ -// NEWSTAT -Butt_S1 = X; -// jaunā vērtība -B_Del_Cnt = B_DEL_VAL; -} -// NEXT -// te būs citi, programmas galvenajā ciklā veicamie darbi -}; + // aparatūras sākuma inicializācija + WDTCTL = WDTPW + WDTHOLD; // apturam WDT + P2DIR = LED1 + LED2; // pārslēdzam uz izeju + P2OUT |= LED1 + LED2; // ieslēdzam abas diodes + // programmas galvenais cikls + while (1) + { + X = P1IN & BMASK; + if (X == Butt_S1) + { + // pogas nav mainījušās + B_Del_Cnt--; + if (B_Del_Cnt == 0) + { + // kontaktu drebēšana ir beigusies + // Pogu apstrāde + if ((Butt_S1 & POGA1) == 0) + { + P2OUT |= LED1; + } + if ((Butt_S1 & POGA2) == 0) + { + P2OUT &= ~LED1; + } + B_Del_Cnt = B_DEL_VAL; + // atkārtojam apstrādi + } + } + else + { + // NEWSTAT + Butt_S1 = X; + // jaunā vērtība + B_Del_Cnt = B_DEL_VAL; + } + // NEXT + // te būs citi, programmas galvenajā ciklā veicamie darbi + }; }