Warum stimmt mein berechneter time-delay so nicht?
Hallo,
ich benutze folgende Funktion um eine Zeit herunterzuzählen:
// delay function
// with external clock = 12.0 MHz
void delay_ms(uint16_t ms) {
uint16_t downtimer;
while (ms) {
downtimer = 12000;
while (downtimer) {
downtimer--;
}
ms--;
}
}
Ich benutze eine 12.0 MHz external Clock am ATMEGA16,
ist auch bei den fuse-bits korrekt eingestellt.
Wenn ich nun aufrufe:
delay_ms(500);
Dann dauert es aber ca. 2 Sekunden, statt 1/2 Sekunde. Warum?
Habe ich etwas falsch parametriert?
Gruß
RICOLA