Create labd3.c

This commit is contained in:
Imants Pulkstenis
2019-11-27 20:56:52 +02:00
committed by GitHub
parent 11a871da02
commit 0d8739ecf2
+60
View File
@@ -0,0 +1,60 @@
#include <msp430xG46x.h>
// 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
};
}