RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBO 2 NIBO 2 Projekte LED mit Timer

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

Site-Statistic

  • 7416 private projects
  • 378 public projects
  • 16172649 lines compiled
  • 58122 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: LED mit Timer

LED mit Timer 12 Jahre 3 Tage her #874

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo
in dem Prg wird die LED ausschlieslich über den Timer gesteuert. Bei den jetzigen daten ensteht 1 Hz. Die Zeit kann geändert werden um z.B. 10ms zu bekommen.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LED mit Timer 12 Jahre 2 Tage her #878

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo achim S.

Zu Deinem Programm:
- Der Kommentar beim Timer2 ist falsch

- Warum verwendest Du ein uint16_t ("signal_wait"), wenn letztendlich nur ein Flag abgefragt werden soll (ob die 500ms abgelaufen sind oder nicht) - reicht da nicht ein uint8_t (=> Platzverschwendung! Macht zwar bei kleinen Programmen wie diesem nichts, aber wenn der Code usw größer wird...)?

- Ist die Abfrage "if(!(PINC&(1<<PC5)))" wirklich nötig (was soll sie denn bewirken?)?

Sinnvoller weil einfacher ist es, die LED in der ISR zu toggeln, und die Zeit per #define vorzugeben.

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LED mit Timer 12 Jahre 2 Tage her #879

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo Egon
mit unit16 hast du recht. Das Prg stammt aber aus einem anderem heraus, wo ich gerade dran arbeite. Habe es wahrscheinlich übersehen. Danke.
Die Abfrage mit PIN ... ist nötig. Es ist eine Abfrage ob LED an oder aus. Wenn aus dann ein. Habe einiges versucht um die Zeiten gleichmässig zu bekommen. Hatte nach einiger Zeit bei anderen Versionen immer das Problem das eine Zeit kürzer war oder sie sich überlappt haben. Das hatte zur Folge das sie nicht exakt geich waren. In die ISR möchte ich keine Funktion legen. Dieses Prg soll die Möglichkeit zeigen mit einem Timer zu arbeiten. In einem anderen Prg soll der Timer nur als Zeitbais für die einzelnen Befehle laufen. Dann kommt in die ISR nur Sicherheitsabfragen z.B.abfrage Sensoren. Diese müssen unabhängig zum Rest der Prg bearbeitet werden. Hatte wiederholt auf das Problem hingewiesen, was passiert wenn der Antieb arbeitet und sich Nibo an einer Kante befindet. Werde noch ein bisschen versuchen.
achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LED mit Timer 12 Jahre 2 Tage her #880

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo achim S.

Wenn Du die Zeiten für LED_EIN und LED_AUS einstellen willst, ist es sinnvoller, dies getrennt zu machen (eine Zeitvorgabe für LED_EIN und eine für LED_AUS - die kannste ja z.B gleichlang machen)- dann hast Du auch die Gewissheit, dass die Zeit für EIN und AUS stimmt - und Du kannst die Zeiten getrennt einstellen.

Wenn die Zeit für LED_EIN oder LED_AUS wirklich genau sein soll, geht das nur über die ISR, da Du nicht weißt, wie lange der Zyklus Deines Programmes ist (außer Du misst ihn) - die Zykluszeit eines Programmes hängt sehr stark davon ab, ob man Ausgaben mit dem GFX-Modul macht oder nicht...

Sensoren abfragen in einer ISR...Du weißt ja schon, daß bei den Sensorabfragen die Interrupts gesperrt sind und was dann bedeutet....

Egon
lokalisieren, eliminieren, Vollzug melden
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LED mit Timer 12 Jahre 2 Tage her #881

  • Egon
  • Egons Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 316
Hallo achim S.

Noch eins zu Deinem Programm - Du solltest mittels cli() und sei() dieses "signal_wait" zurücksetzen - siehe auch: www.avr-praxis.de/forum/showthread.php?2012-timer/page3 #22!

Egon
lokalisieren, eliminieren, Vollzug melden
Letzte Änderung: 12 Jahre 2 Tage her von Egon.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: LED mit Timer 12 Jahre 2 Tage her #882

  • achim S.
  • achim S.s Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 441
Hallo
Denn Artikel kenne ich, stammt ja auch von mir. Hatte leider in der letzten Zeit stark unter dem winterschlaf mit nachfolgender Frühjahrsmüdigkeit zu leiden. Habe aber auch was gemacht. Es gibt eine Reihe von Artikeln im Netz, die sich mit der gleichzeitigen oder verteilten Abarbeitung von Prozessen beschäftigen. Das fängt an von teilweise riesigen Schedulern bis zu kleinen Prg die so was können. In dem Artikel ist eigentlich schon die Richtung zu erkennen. Ein Prg soll gleichzeitig mehrere LED mit unterschiedlichen Zeiten steuern, Den Taster abfragen, beim Rückwärtsfahren die LED rot blinken lassen mit einem warnton, die Sensoren abfragen und die Richtung wo frei ist ausrechnen und noch einiges anderes. (Alles gleichzeitig oder kurz hintereinander).Ein wichtiges Teil ist dabei, die Verwendung von Standart Bibliotheken. Wenn das Prg im Netz steht, muss es jeder verwenden können. Bei einem Teil kommen die Module die ich habe, sehr gut damit klar. An anderen teilen arbeite ich noch. Habe aber gute Ideen dazu. Auf jeden Fall wird delay nicht mehr verwendet.
achim
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Ladezeit der Seite: 0.052 Sekunden

Werbung