Ćwiczę sobie dalej timery. Jako, że dopiero zaczynam programować, nie chcę wyrobić sobie złych nawyków. Napisałem prosty program do znanego efektu Knight Rider. Kod działa, ale chciałbym się dowiedzieć, czy nie popełniłem jakiś zasadniczych błędów, które mogą mi zagrozić w pracy nad większymi projektami. Gdyby któryś z Was miał chwilę, bardzo bym prosił aby zerknąć.
Kod: Zaznacz cały
volatile int count;
volatile int speed;
volatile int flag;Kod: Zaznacz cały
ISR(TIMER0_OVF_vect) //overflow
{
if(++speed == 10)
{
PORTB = 0x00;
PORTB |= (1<<count);
if(flag == 0)
{
if(++count == 3) flag = 1;
}
else if(flag == 1)
{
if(--count == 0) flag = 0;
}
speed = 0;
}
}