Hallo, ich ein total komisches Problem:
Wenn ich _delay_ms() aufrufe wartet es nicht nur ungenau, nein viel schlimmer, es wartet jedesmal anders.
Code:
#include <avr/io.h>
#include <util/delay.h>
void long_delay(uint16_t ms) {
for(; ms>0; ms--) _delay_us(1000);
}
int main(void)
{
DDRB=0xFF;
// Insert code
//init();
//set_pin(PORTB,PIN1);
while(1)
{
long_delay(100);
clear_pin(PORTB,PIN0);
long_delay(10000);
set_pin(PORTB,PIN0);
}
return 0;
}
Wenn ich das baue und auf meinen Mega8@1MHz lade ist die an phase länger als die ausphase (obwohl es eigentlich umgekehrt sein sollte) und die Wartezeit mit nichten 100ms sondern deutlich über 1 Sekunde.
Ich hab nicht die leiseste Ahnung woran das liegen könnte.
Im simulator funktioniert das Programm einwandfrei.
Ich werde es morgen auch noch auf einem anderen AVR Testen
Lesezeichen