Nochmal: Wait

Gast #820
Lesenswert?
• ▲
▼
Hi,

gleiches Problem...
...nur mit dem IAR-Compiler.

Aber ich denke auch hier gibt es keinen Befehl.
Hat jemand einen Democode in C?
Würde mir sehr weiter helfen!
Bzw. ist es der "State of the art" wenn man
es mit einen Timer Interrupt löst und eine
Globale Variable hochzählt?
Siehe folgenden Pseudocode:

P.S. Danke für jeden Hinweis!
Timo

//--- Codeanfang:
unsigned int iCounter

Main
{
  SetBit(SREG,7); // Generelle Interruptfreigabe
  SetBit(TIMSK,1); // Interrupt Timer0 freigegeben

  SetBit(PORTB,5); // PortB = High
  Wait(500);
  ClearBit(PORTB,5); // PortB = Low
}

void Wait(unsinged int iValue)
{
  TCNT0=0; // Startwert
  TCCR0=1; // Vorteiler (Timer starten)
  iCounter=iValue;

  while(iCounter){};

  TCCR0=0; // Timer stoppen
}


__interrupt void TIMER0_OVERFLOW(void)
{
  iCounter--;
}

//--- Codeende
Gast #821
Lesenswert?
• ▲
▼
sieht gut aus IMHO, ich mache es jedenfalls auch so und mir ist noch 
kein "eleganterer" Weg eingefallen [wozu auch, funktioniert ja und in 
ASM sind das auch nur ein paar Instructions]

Lars.

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.