Update labd3.c

This commit is contained in:
Imants Pulkstenis
2019-12-11 20:32:08 +02:00
committed by GitHub
parent d95e1b8c3d
commit fa0963d190
+45 -34
View File
@@ -1,59 +1,70 @@
// programma veic Kontaktu drebesanas noversanu
#include <msp430xG46x.h> #include <msp430xG46x.h>
// aparatūras definīcijas // aparaturas definicijas
#define POGA1 0x01 // P1.0 #define POGA1 0x01 // P1.0
#define POGA2 0x02 // P1.1 #define POGA2 0x02 // P1.1
#define LED1 0x04 // P2.2 #define LED1 0x04 // P2.2
#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 437 // So mes mainisim pec algoritma izveides
void main(void) void main(void)
{ {
// mainīgie // mainigie
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; // starprezultatu glabasana
unsigned char Butt_S2; // 7.punkta mainigais pogas ieprieksejas stavokla saglabasanai
// aparatūras sākuma inicializācija // aparaturas sakuma inicializacija
WDTCTL = WDTPW + WDTHOLD; // apturam WDT WDTCTL = WDTPW+WDTHOLD; // apturam WDT
P2DIR = LED1 + LED2; // pārslēdzam uz izeju P2DIR = LED1 + LED2; // parsledzam uz izeju
P2OUT |= LED1 + LED2; // ieslēdzam abas diodes P2OUT |= LED1 + LED2; // iesledzam abas diodes
// programmas galvenais cikls
while (1)
// programmas galvenais cikls
while(1)
{ {
X = P1IN & BMASK; X=P1IN & BMASK;
if (X == Butt_S1) if(X == Butt_S1)
{ { // pogas nav mainijusas
// pogas nav mainījušās
B_Del_Cnt--; B_Del_Cnt--;
if (B_Del_Cnt == 0) if(B_Del_Cnt==0)
{ // kontaktu drebseana ir beigusies
////////////////// 5.punkts - Pogu apstrades algoritms (visu iekomentejam, ja velamies izpildit 7.punktu)
// if( (Butt_S1 & POGA2) == 0)
// {
// P2OUT |= LED1;
// }
// if( (Butt_S1 & POGA1) == 0)
// {
// P2OUT &= ~LED1;
// }
//////////////////////////////////////// 5.punkta beigas
////////////////// 7.punkts - Pogu apstrades algoritms (visu iekomentejam, ja velamies izpildit 5.punktu)
if( (Butt_S1 & POGA1) == 0)
{ {
// kontaktu drebēšana ir beigusies if(Butt_S1 != Butt_S2)
// Pogu apstrāde
if ((Butt_S1 & POGA1) == 0)
{ {
P2OUT |= LED1; P2OUT ^= LED2;
} }
if ((Butt_S1 & POGA2) == 0)
{
P2OUT &= ~LED1;
} }
B_Del_Cnt = B_DEL_VAL; Butt_S2 = Butt_S1;
// atkārtojam apstrādi //////////////////////////////////////// 7.punkta beigas
B_Del_Cnt=B_DEL_VAL; // atkartojam kontaktu drebsaanas apstradi
} }
} }
else else
{ { // NEWSTAT
// NEWSTAT Butt_S1=X; // jauna vertiba
Butt_S1 = X; B_Del_Cnt=B_DEL_VAL;
// jaunā vērtība
B_Del_Cnt = B_DEL_VAL;
} }
// NEXT // NEXT
// te būs citi, programmas galvenajā ciklā veicamie darbi // te bus citi, programmas galvenaja cikla veicamie darbi
}; };
} }