www.mikrocontroller.net

Forum: Compiler & IDEs LED Toggeln lassen ohne delay()


Autor: xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich sende an meinen µC bestimmte commandos. Wenn ein commando nicht 
bekannt dem µC nicht bekannt ist, sollte LED1, die am PORTA PIN1 ist, 
blincken, und zwar so, dass ich es auch sehe. Wie kann ich es am besten 
softwaretechnisch realisieren, ohne das ich delay benutze:

das funktioniert zwar, aber passiert viel zu schnell, so dass ein mensch 
das gar nciht wahr nehnem kann.
LED1_TOGGLE()
{ 
  if(LED1_ON) 
    LED1_OFF();
  else 
    LED1_ON();
}

Autor: Tobias Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timer verwenden?
Zählerschleife? (also nur bei jedem x-ten durchlauf die LED toggeln)

Autor: Icke Muster (Firma: my-solution) (hendi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube auch mit nem Timer wäre das wohl am schönsten, aber eine 
Schleife mit NOPs könnte auch gehen, sag ich einfach mal so. Das 
impliziert aber eigentlich auch wieder ein Delay.

Autor: Tobias Paul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich meinte eigendlich so in der art:
so das bei jedem x-ten durchlauf die LED getoggelt wird.
uint8_t counter;

LED1_TOGGLE()
{ 
  counter++;
  if (counter == 10)
   {
    if(LED1_ON) 
      LED1_OFF();
    else 
      LED1_ON();

    counter = 0;
   }
}

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und woher weißt die, wie lange ein Durchlauf heute dauert, damit du
den Zählwert festlegen kannst?  Woher weißt du, wie lange er nächste
Woche dauern wird?

Nimm einen Timer.  Dafür sindse da.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interessant ist auch die Frage, ob der µC noch was machen soll, während 
er "toggelt", z. B. die nächsten Befehle annehmen, Berechungen,...

Davon ist abhängig, wie du es umsetzt. Falls noch was passieren soll, 
gehen fast nur Timer und Interrupts.

Gruß.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.