- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Blinken in Progressing

  1. #1

    Frage Blinken in Progressing

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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.

  7. #7
    Oje, bin leicht überfordert^^
    Google hat nichts gescheites ausgespuckt, hab en bissel über Interrupts gelesen, nunja schlauer bin ich nochnicht geworden

    Gibts den kein Codebeispiel?

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    1234567890
    Geändert von i_make_it (01.02.2015 um 19:16 Uhr)

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.03.2004
    Alter
    75
    Beiträge
    487
    Falls Du mit "Progressing" die Programmiersprache "Processing" meinst, schau mal hier:
    http://www.jeremyblum.com/2011/03/07...re-debouncing/
    Dort gibt es auch ein Code-Beispiel. Die Programme haben die Extension .pde. Scheinen Processing-files zu sein. Musst Du selber überprüfen, denn ich habe weder Ahnung von Processing noch vom Arduino.

    Überhaupt scheinen alle Tutorials für Arduino und Processing interessant zu sein. Ab Tutorial 6 in Processing programmiert.
    http://www.jeremyblum.com/category/arduino-tutorials/

    Leider alles auf Englisch.

    Gruß, Günter

  10. #10
    Danke!
    Ist ein guter Buchartickel, schön für Anfänger geschrieben!
    Mal sehen ob ich den Interrupt eingebastelt bekomme.

    Thx i_make_it

    @Günter49
    Zitat Zitat von Greensiver Beitrag anzeigen
    PS: Rechtschreibbung ist immer nochnicht meine Stärke
    ^^

    Dass das in Englisch ist, is überhaupt kein Problem
    Ich werde es mir gleich mal anschauen.

    - - - Aktualisiert - - -

    Hm.
    @i_make_it

    Ist zwar ganz interresannt. Der Teil beschäftigt sich aber ausschlieslich mit dem Externen Interrupt. für mich müsste aber der interne Relevant sein.
    Geändert von Greensiver (03.11.2012 um 16:42 Uhr)

Seite 1 von 2 12 LetzteLetzte

Ä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
  •  

Labornetzteil AliExpress