Mám takýto problém: následujúci program rozbliká ledky v štýle svetelného hada alebo knigth ridera. Ale problém je že nesedí teoretická praktická dlžka blikania. V prvom riadku mám nastavenu frekvenciu na 8Mhz(mam tam taky kristal). Ked spocitam celkovy cas jedneho cyklu (slucky while(1)) tak vyde 5ms*10*14=700ms. Ale vskutočnosti to trvá približne 5sekúnd. Nemal niekto podbné problémy?
#define F_CPU 8000000UL
#include<avr/io.h>
#include<util/delay.h>
int main(void)
{
DDRA = 255; DDRC = 0;
PORTC = 1;
int i;
while (bit_is_set(PINC, 0))
;
while (1){
PORTA = 254;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 253;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 251;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 247;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 239;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 223;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 191;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 127;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 191;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 223;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 239;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 247;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 251;
for(i = 0; i < 10; i++)
_delay_ms(5);
PORTA = 253;
for(i = 0; i < 10; i++)
_delay_ms(5);
}
}