Hallo, ich ein total komisches Problem:
Wenn ich _delay_ms() aufrufe wartet es nicht nur ungenau, nein viel schlimmer, es wartet jedesmal anders.
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.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; }
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







Zitieren
Lesezeichen