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