Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <msp430x14x.h>
- #include "lcd.h"
- #include "portyLcd.h"
- #include "mies.h"
- unsigned int i=0;
- //unsigned int s1=0;
- unsigned int licznik=0;
- unsigned int licznik2=0;
- //unsigned int min=0;
- unsigned int dm=0;
- //unsigned int g=0;
- void Clock(int g, int min, int s1)
- {
- for (;;)
- {
- _BIS_SR(LPM3_bits); // przejscie do trybu LPM3
- if (licznik %10 ==0) // gdy mine3a sekunda (10 * 100 milisekund)
- {
- licznik=0;
- ++s1;
- if(((s1-s1%10)/10)==6)// licz minuty
- {
- ++min;
- }
- if((((min-min%10)/10)==6) && (((s1-s1%10)/10)==6))
- {
- ++g;
- min=0;
- s1=0;
- }
- if(((g-g%10)/10)==2 && g%10 == 4)
- g=0;
- if(((min-min%10)/10)==6)
- {
- s1=0;
- min=0;
- ++g;
- }
- if(((s1-s1%10)/10)==6)// licz minuty
- {
- s1=0;
- }
- SEND_CMD(DD_RAM_ADDR2);
- printDecDigit((g-g%10)/10);
- printDecDigit(g%10);//wyswietl liczbe godzin
- SEND_CHAR(':');
- printDecDigit((min-min%10)/10);
- printDecDigit(min%10);//wyswietl liczbe minut
- SEND_CHAR(':');
- printDecDigit((s1-s1%10)/10);
- printDecDigit(s1%10);//wyswietl liczbe sekund
- for(int i=0; i<6; i++)
- {
- SEND_CMD(CUR_SHIFT_LEFT);
- }
- }
- }
- }
- /*void Calendar(void)
- {
- if (licznik %10 ==0) // gdy mine3a sekunda (10 * 100 milisekund)
- {
- licznik=0;
- ++dm;
- if(((dm-dm%10)/10)==3 && dm%10 == 2)// licz sekundy
- dm=0;
- SEND_CMD(DD_RAM_ADDR);
- printDecDigit((dm-dm%10)/10);
- printDecDigit(dm%10);//wyswietl liczbe sekund
- SEND_CMD(CUR_SHIFT_LEFT );
- SEND_CMD(CUR_SHIFT_LEFT );// wróa kursorem na pocz1tek
- }
- }*/
- void main( void )
- {
- int spec[2][8]= {{2, 4, 22, 25, 17, 17, 17, 0}, //n
- {2, 4, 31, 2, 4, 8, 31, 0}
- }; //Y
- int m1[]= {115, 116, 121, 99, 122, 101, 0}; //styczen
- int m2[]= {108, 117, 116, 121}; //luty
- int m3[]= {109, 97, 114, 122, 101, 99}; //marzec
- int m4[]= {107, 119, 105, 101, 99, 105, 101, 0}; //kwiecien
- int m5[]= {109, 97, 106}; //maj
- int m6[]= {99, 122, 101, 114, 119, 105, 101, 99}; //czerwiec
- int m7[]= {108, 105, 112, 105, 101, 99}; //lipiec
- int m8[]= {115, 105, 101, 114, 112, 105, 101, 0}; //sierpien
- int m9[]= {119, 114, 122, 101, 115, 105, 101, 0}; //wrzesien
- int m10[]= {112, 97, 1, 100, 122, 105, 101, 114, 110, 105, 107}; //paYdziernik
- int m11[]= {108, 105, 115, 116, 111, 112, 97, 100}; //listopad
- int m12[]= {103, 114, 117, 100, 122, 105, 101, 0}; //grudzien
- //P2DIR |= BIT1 ; // STATUS LED
- WDTCTL=WDTPW + WDTHOLD; // Wy31czenie WDT
- InitPortsLcd(); // inicjalizacja portów LCD
- InitLCD(); // inicjalizacja LCD
- clearDisplay(); // czyszczenie wyowietlacza
- SEND_CMD(CG_RAM_ADDR);
- for(int i=0; i<2; i++)
- {
- for(int j=0; j<8; j++)
- {
- SEND_CHAR(spec[i][j]);
- }
- }
- SEND_CMD(DD_RAM_ADDR);
- for(int i=0; i<7; i++)
- SEND_CHAR(m1[i]);
- // Basic Clock Module ustawiamy na ACLK(zegar 8 MHz ) i dzielimy czestotliwooa przez 2 (4 MHz)
- BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL 8MHz
- do
- {
- IFG1 &= ~OFIFG; // Czyszczenie flgi OSCFault
- for (i = 0xFF; i > 0; i--); // odczekanie
- }
- while ((IFG1 & OFIFG) == OFIFG); // dopóki OSCFault jest ci1gle ustawiona
- BCSCTL1 |= DIVA_1; // ACLK=8 MHz/2=4 MHz
- BCSCTL2 |= SELM0 | SELM1; // MCLK= LFTX1 =ACLK
- // Timer_A ustawiamy na 500 kHz
- // a przerwanie generujemy co 100 ms
- TACTL = TASSEL_1 + MC_1 +ID_3; // Wybieram ACLK, ACLK/8=500kHz,tryb Up
- CCTL0 = CCIE; // w31czenie przerwan od CCR0
- CCR0=50000; // podzielnik 50000: przerwanie co 100 ms
- _EINT(); // w31czenie przerwan
- /*for (;;)
- {
- _BIS_SR(LPM3_bits); // przejscie do trybu LPM3
- Clock(23,59,50);
- }*/
- Clock(22,55,55);
- }
- #pragma vector=TIMERA0_VECTOR
- __interrupt void Timer_A (void)
- {
- ++licznik;
- _BIC_SR_IRQ(LPM3_bits); // wyjocie z trybu LPM3
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement