Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
- volatile int state = 0;
- volatile int increm = 0;
- byte show[8]={
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- };
- byte ceasH[8][8] = {
- {
- B00000,
- B00000,
- B00100,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00010,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00110,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B00010,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B00100,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B01000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B01100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B01000,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- };
- byte ceasM[8][8] = {
- {
- B00000,
- B00100,
- B00100,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00001,
- B00010,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00111,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B00010,
- B00001,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B00100,
- B00100,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B00100,
- B01000,
- B10000,
- B00000,
- },
- {
- B00000,
- B00000,
- B00000,
- B11100,
- B00000,
- B00000,
- B00000,
- },
- {
- B00000,
- B10000,
- B01000,
- B00100,
- B00000,
- B00000,
- B00000,
- },
- };
- ISR(INT0_vect)
- {
- //reset
- state = 0;
- }
- //Rutina pentru tratarea intreruperii atasata la INT0
- ISR(INT1_vect)
- {
- increm = increm == 1? 0: 1;
- }
- void setup() {
- lcd.begin(16, 2);
- }
- // FuncŃia loop ramane nefolosita, puteti să o folositi pentru a extinde funcționalitatea
- void loop()
- {
- state += increm;
- state = state == 64? 0:state;
- for(int i=0; i<7; i++){
- show[i] = (byte)ceasM[state%8][i] | (byte)ceasH[state/8][i];
- }
- pinMode(21 ,INPUT);
- pinMode(20, INPUT);
- EIMSK |= (1 << INT0); //activam punctual intreruperea INT0
- EIMSK |= (1 << INT1); //activam punctual intreruperea INT1
- EICRA |= (1 << ISC01); //activam intreruperea 0 pentru front descrescător.
- EICRA |= (1 << ISC11); //ca si mai sus, pentru intreruperea 1
- sei(); //activam intreruperile la nivel global
- lcd.createChar(1, show);
- lcd.setCursor(1, 1);
- lcd.write(1); // cand referiti caractere diferite de „0” nu mai este necesar cast-ul;
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement