diff --git a/labd3.c b/labd3.c new file mode 100644 index 0000000..2c31468 --- /dev/null +++ b/labd3.c @@ -0,0 +1,60 @@ +#include + +// aparatūras definīcijas +#define POGA1 0x01 // P1.0 +#define POGA2 0x02 // P1.1 + +#define LED1 0x04 // P2.2 +#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 + + +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 + +// 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 +}; +}