Su un progettino ho usato un ATmega8 e ho notato che millis() scorre più veloce del normale.
Diciamo che per avere pause di 1 secondo devo impostare 1783 anzichè 1000, questo valore non è nemmeno tanto accurato perchè non ho mezzi per poter fare una misurazione precisa.
Ho provato sull'ide 0.22 e sull'ide 1.0.5, clock 1 e 8 MHz oscillatore interno ed il problema rimane.
I fuse sono corretti, idem per il file boards.txt con le relative configurazioni.
Si può intervenire in qualche modo per sistemare le cose?
Prova a compilare ed eseguire lo Speed Test
--> Arduino Playground - ShowInfo
La Wire.h è usata solo per l'i2C, se non ti serve commentala e togli la relativa parte.
Mi sa che è troppo grande per 8K. ![]()
Bellissimo tool, non lo conoscevo.
Ho fatto il test su un ATmega328 a 16 MHz e su un ATmega8 a 8 MHz per avere un riscontro:
Speed test ATmega328 @ 16MHz VS ATmega8 @ 8MHz
----------
F_CPU = 16000000 Hz 8000000 Hz
1/F_CPU = 0.0625 us 0.1250 us
delay(1) : 1006.987 us 1014.500 us
delay(100) : 99999.984 us 100000.000 us
delayMicroseconds(1) : 0.883us 1.660 us
delayMicroseconds(5) : 4.656 us 4.802 us
delayMicroseconds(100) : 100.237 us 100.450 us
Ma l'errore non é saltato fuori?
Non é che nel tuo sketch hai un ritardo nascosto?