Zitat Zitat von pebisoft
dann ist doch die ganze routine zum aufrufen völliger schwachsinn.
dann müste ich 30000 eingeben wenn ich 1000ms warten soll bei 8mhz
und rund 10000 wenn ich 1000us warten soll... oder...
Nein, der Parameter bezeichnet schon die Millisekunden. Der Trick hinter _delay_ms ist, dass mit dem Parameter eine Berechnung durchgeführt wird, und zwar zur Compilezeit. Das heißt, der Compiler rechnet den übergebenen Wert von ms nach "Wartetakte" um. Für diese Umrechnung braucht der Compiler eben die Takt-Geschwindigkeit des Mikrocontrollers, da bei höherem Takt die Wartschleife schneller durchläuft als bei niedrigerem. Bei höherem Takt muss der Compiler den Parameter "1 ms" z.B. in mehr Wartetakte umrechnen als bei einem langsamen Takt.