- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 13

Thema: Blinken in Progressing

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    Frage Blinken in Progressing

    Hi Leute!
    Ich versuche eine Art RC-Car-Steuerrung für Aduino zu schreiben.
    Bin jetzt beim Blinklicht angelangt.
    Ich komme in Progressing gerade nicht weiter.

    Ich hätte gedacht per z.B. incomingByte eine Schleife zu starten, die ein Blinkimpuls aussendet. Ich will aber aus der Schleife auch über incomingByte (aber diesmal ein anderes Byte) wieder herrauskommen, damit die Blinkerrei wieder aufhört (werdend des Blinkens sollte man auch noch fahren können). Und das für Links-Blink, Rechts-Blink und Warn-Blink.

    Wer cool, wenn Ihr mir mit ein bischen Code aushelfen könntet, hab keinen Plan wie ich an dieses Problem herran gehen soll.
    --> mit el. Schaltungen kann man das zwar umgehen, möchte es aber gern alles vom µC haben


    PS: Rechtschreibbung ist immer nochnicht meine Stärke

    __________
    Gruß Green

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo Greensiver,

    du solltest deine Blink-Routinen in sogenannte Interrupts auslagern. Ich denke mit dem Suchbegriff "Interrupt" solltest du mal Google füttern und dich etwas einlesen. Es sollte recht einfach sein dann mit dem Datenblatt des µC eine LED per Interrupt blinken zu lassen.

    Bei weiteren Fragen wird dir hier dann gerne wieder weiter geholfe.

    Viele Grüße
    Andreas

  3. #3
    Nur mal vom Lesen her:

    Bei einem Interrupt wird durch ein Ereignis (z.B. Timer, Signal von außen, ...) das Hauptprogramm loop() unterbrochen und ein vorab festgelegtes Unterprogramm ausgeführt. Nach Abarbeitung des Unterprogrammes wird das Hauptprogramm an der ursprünglichen Stelle weiter ausgeführt.
    Das klingt ja so als ob ich beim Blinken nichts anderes machen könnte. Stimmt das? --> ist bei einer Autosteuerrung ungünstig, beim Blinken nicht fahren zu können
    Ich recherchiere zwar noch, aber wer trotzdem gut, wenn mir jemand ein Beispiel zeigen könnte.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Das ist genau, dass was du suchst. Du unterbrichst kurz dein Hauptprogramm, um die LED im Interrupt ein- oder auszuschalten und kehrst dann wieder dorthin zurück. Das ganze verlassen und zurückkehren übernimmt dabei der µC für dich.

    Das Stichwort Timer-Interrupt hilft dir weiter. In den Datenblättern der µC findest du dazu genügend Beispiele. Einfach einen Timer-Interrupt einrichten, der mit deiner gewünschten Blink-Frequenz aufgerufen wird (ich würde sagen ca. jede Sekunde)

    Im Prinzip setzt du eine Variable, ob es blinken soll oder nicht, je nachdem welches Byte in deinem Hauptprogramm empfangen wurde.
    Im Interrupt prüfst du dann diese Variable und schaltest dort die LED an oder aus.
    Das Hin- und Hergespringe dabei übernimmt wie gesagt der µC.

  5. #5
    Also sowas hier oder?

    Code:
    static volatile int interrupt0set; // Der Interrupt-Indikator
    
    ...
    
    void interrupt0routine(void) {  // Die Interrupt-Service-Routine
      interrupt0set++;  // Nur eine einzige Operation!
      return;  // Fertig!
    }
    
    ...
    
    void loop (void) {
    
      if (interrupt0set) {  // Indikator abfragen
        //  Interrupt bearbeiten
        ...
        interrupt0set=0; //  Fertig. Indikator zurücksetzen.
      }
    
      ...
    
    }
    Geändert von Greensiver (03.11.2012 um 10:04 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    ...eigentlich nicht sorry.

    Du solltest erst mal versuchen eine LED (einen Ausgang) per Interrupt blinken zu lassen. Dazu würde ich mir im Datenblatt deines µC das Kapitel zu den Timer-Interrupts durchlesen und mithilfe der Beispiele dort den Interrupt so implementieren, dass er ca. jede Sekunde aufgerufen wird.
    Wenn dies passiert ist und läuft kannst du die Interrupt-Routine so erweitern, dass der Ausgang der LED an- und abgeschaltet wird, jeweils abwechselnd nach jedem Aufruf.

    Die Erweiterung und Anpassung an dein Programm ist dann nur noch ein kleines Stück.

Ähnliche Themen

  1. Led mit 36 khz blinken lassen.
    Von icebreaker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 31.08.2011, 18:55
  2. vermutlich defekte LED's blinken?
    Von Amiwerewolf im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 16.07.2010, 11:17
  3. Led blinken lassen mit Timer0
    Von sky2 im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 25.12.2009, 18:33
  4. LED soll nebenbei blinken
    Von Powell im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 01.12.2007, 10:55
  5. Laufschrift/Blinken LCD in C
    Von Misterbrot im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 22.08.2007, 20:37

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad