11-08-2019, 09:54
(Ten post był ostatnio modyfikowany: 11-08-2019, 09:57 przez Jarewa0606.)
Można jeszcze tak formatować
I tak zliczac
Time_czas pochodzi od timera ustawiony na 2Hz..
Bez problemu ustawisz timer1 na 100Hz wtedy przerywanie będzie dokładnie co 10ms..
Cod w setup dla Ardunio 16MHz użycie TIMER1
ms będzie dodawało dokładnie co 10ms
Kod:
lcd.setCursor(15, 0);
lcd.print(int(czas_godz / 10));
lcd.print(czas_godz % 10);
lcd.print(":");
lcd.print(int(czas_min / 10));
lcd.print(czas_min % 10);
I tak zliczac
Kod:
//////////// czas MTh
if (Time_czas >= 2)
{
Time_czas = 0;
czas_sek++;
if (czas_sek == 60)
{
czas_sek = 0;
czas_min++;
}
if (czas_min == 60)
{
czas_min = 0;
czas_godz++;
}
//if(czas_godz==24){h=0;}
}
Time_czas pochodzi od timera ustawiony na 2Hz..
Bez problemu ustawisz timer1 na 100Hz wtedy przerywanie będzie dokładnie co 10ms..
Cod w setup dla Ardunio 16MHz użycie TIMER1
Kod:
cli();
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 19999;
TCCR1B |= (1 << WGM12);
TCCR1B |= (0 << CS12) | (1 << CS11) | (0 << CS10);
TIMSK1 |= (1 << OCIE1A);
sei();
Kod:
ISR(TIMER1_COMPA_vect){
ms++;
}
ms będzie dodawało dokładnie co 10ms
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą.