Hallo,
das müssen schon 2 ineinander verschachtelte Schleifen werden 
Für 16Mhz sieht das bei mir so aus:
Code:
void sleep(unsigned int sec)
{
for (unsigned int s=0; s<sec; s++) {
for (long int i=0; i<2000000; i++) {
asm volatile("nop");
}
}
}
Für deine Taktfrequenz wären das wohl
Code:
void sleep(unsigned int sec)
{
for (unsigned int s=0; s<sec; s++) {
for (long int i=0; i<460800; i++) {
asm volatile("nop");
}
}
}
probier's mal aus 
Die Wartezeit hängt auch ziemlich stark vom verwendeten Datentyp ab.
Je nach Breite der Zahlen in Bit sind mehr oder weniger Schreib-/Lese-
zugriffe dann notwendig.
Grüße,
Bernhard
btw: juhu, mein 400. Beitrag ^^
Lesezeichen