Asycnchrone Delay Funktion!?

Gast #4331738
Lesenswert?
• ▲
▼
Hallo Leute,

ich bin neu in der embedded Welt:) Und programmiere grad an einem 
PIC16F1937;)

Da wollte angelehnt an dem kooperativen Scheduling eine delay Funtion 
implementieren, via Timer :)

Folgender (Pseudo Code):
1
volatile int _counter = 0;
2
int _oldValue = 0;
3

4
void timerInterrupt(void)
5
{
6
     if(TMR2IF)
7
    {
8
  ++_counter; 
9
  TMR2IF = 0; 
10
    }
11
}
12

13
BOOL Delay(in delay)
14
{
15
   intdelta = _counter - _oldvalue;
16
   if(delta >= delay)
17
   {
18
       oldvalue = _counter;
19
       return TRUE;
20
   }
21
   return FALSE;
22
}

Das fumktioniert auch soweit, aber ich würde gern von euch Spezialisten 
hören, ob es dafür noch ne andere implemention gibt!?

Schönen Sonntag

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.