Delay Funktion

Gast #2515
Erstmal Hallo alle zusammen!
Ich habe ein Problem mit dem Timer Funktionen unter einem 8051 
Mikrokontroller!
Ich arbeite mit dem Keil Compiler und wollte eine richtige Delay 
Funktion in mein Programm implementieren, der man als Parameter die 
Wartezeit (z.B. in ms oder us) übergibt.
Ich hab ne ganze Weile im Internet nach einer guten Lösung gesucht und 
auch was gefunden, und zwar auf der Keil Homepage (siehe Anhang).
Doch jetzt haben die eine Berechnung ganz am Anfang des Files

#define TIMER0_COUNT 0xDC11 /* 10000h - ((11,059,200 Hz / (12 * FREQ)) - 
17) */

die ich nicht kapiere.

Kann mir mal jemand erklären warum 10000h - ....... ?????????????
Angehängte Dateien:
Gast #2517
Wie wäre es damit?

//---------------------------------

unsigned int Set_1ms (unsigned int new_time)
{
  return(Clock_1ms + new_time);
}

bit Check_1ms (unsigned int time)
{
  return((time - Clock_1ms) & 0x8000);
}
//-------------------------
Die Variable Clock_1ms zählst Du im TimerInterrupt hoch.
Die Abfrage sieht dann so aus:


unsigned int Zeit=Set_1ms(150);

 if (Check_1ms(Zeit))
   {
     // mach etwas....
     Zeit = Set_1ms(150);
   }

//--------------------------------

Das hat den Vorteil, das Dein Polling nicht komplett von angehalten 
wird. Im Gegensatz zu einer Warteschleife...

Bis dann,
Ingo!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 24 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.