lab3 commit
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user