Anfängerfrage (Lauflicht will nicht laufen)

Gast #220347
Hallo! Bin gerade dabei ein Lauflicht für die LEDs meines STK zu
programmieren, unzwar jedesmal wenn wenn TCNT0=0 ist, also der Timer
überläuft, soll eine Variable +1 gesetzt werden. Und wenn die Variable
dann >=7 ist, wieder 0 gesetzt werden, aber schaut euch mal am besten
den Code an. Jedenfalls passiert nichts.



Gruß, Sebastian

PS: Zu beachten ist, dass am STK alle LEDs invertiert sind.
Angehängte Dateien:
Gast #220351
Das gleiche Spiel mit TCNT0 (if(TCNT0=255) -> ==)
Ein anderes Problem könnt noch sein:
 Je nach Vorteiler kann natürlich TCNT0 mehrmals direkt nacheinander
gleich 255 sein. Offensichtlich geht es nicht um exaktes timing darum
mein vorschlag nicht nur i++, sondern auch TCNT0 = 0 setzen.
Gast #220352
Zunächst einmal wäre es deutlich effizienter, das ganze in den
Timer0-Overflow-Interrupt zu verlegen.

Zweitens: Für ein Lauflicht ist diese Zeile

PORTD = (PORTD | i);


denkbar ungeeignet. Besser wäre vielleicht

PORTD = (1 << i);

für einen wandernden Lichtpunkt oder

PORTD |= (1 << i)

damit die LED der Reihe nach angehen. Damit sich auch wieder der Reihe
nach ausgehen, genügt ein

PORTD &= ~(1 << i)
Gast #220353
Danke Leute, ihr seid spitze! Mit dem == habt ihr natürlich Recht, so
hatte immerhin schonmal was geblinkt ;). Und mit Olaf's Tips
funktioniert es jetzt wie es soll. Danke nochmal

Gruß, Sebastian

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.