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