Hallo, ich nutze einen ATmega32 mit 16 MHz Quarz. Ich habe mir die Beschreibung zu den Funktionen _delay_ms() und _delay_us() in der Reference angeguckt. http://www.nongnu.org/avr-libc/user-manual/group__util__delay.html Verstehe ich das nun richtig das ich bei _delay_ms() einen Wert von maximal 262.14 ms / F_CPU in MHz = 16,38375 aufrufen soll. Wenn ich einen höheren nehme dann beträgt die Genauigkeit "nurnoch" 1/10 ms. Also wäre ein Aufruf von _delay_ms(1000) (oder 500 oder 250 etc.) kein Problem. Bei _delay_us() sollte der Wert maximal 768 us / F_CPU in MHz = 48 betrage, ansonsten wird _delay_ms() genutzt. Sollte ich daher aus _delay_us(50) dann lieber
1 | _delay_us(25); |
2 | _delay_us(25); |
machen und aus _delay_us(60) dann halt
1 | _delay_us(25); |
2 | _delay_us(25); |
3 | _delay_us(10); |
machen? Oder wie baue ich am Besten eine Wartezeit (in der nichts Anderes abgearbeitet werden muss) mit "hohen" Zeiten?