Zitat Zitat von BMS Beitrag anzeigen
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 ^^
moin,
und im Bereich ms sieht es so aus?
void sleep_ms(unsigned int ms)
{
for (unsigned int s=0; s<ms; s++) {
for (unsigned int i=0; i<461; i++) {
asm volatile("nop");
}
}
}