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 ^^