- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 25

Thema: Ansteuerung RC LED Scheinwerfer

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Ich habe bisher nur ganz kleine Sachen selbst gemacht. Wie ist das mit den Interrupts. Ich möchte den Int0 verwenden mehr hat der Tiny eh nicht. Das ist Pin B.1 ok wie genau funktioniert das? Springt der bei jedem Flankenwechsel in die ISR routine und bearbeitet diese genau einmal?
    Also sowohl bei steigender als auch bei fallender Flanke?
    Es gibt ein paar Register mit denen man einstellen kann, ob der Interrupt bei steigender Flanke, fallender Flanke, bei jeder Flanke, einem High-Level oder einem Low-Level ausgelöst wird. Bascom erledigt das Setzen dieser Register, so dass man sie gar nicht im einzelnen kennen muss, sondern nur die richtige (und einfache!) Bascom-Syntax braucht. In der Bascom-Hilfe steht beim Befehl "Config INT0" alles wesentliche.

    Dann muss man noch wissen, dass man Interrupts aus- und einschalten kann, denn mitunter kann es ja mal sein, dass das Hauptprogramm für eine Zeit eben nicht durch Interrupts gestört werden darf. Dieses Aus- und Einschalten geschieht auf zwei Ebenen:
    Erstens muss man jeden einzelnen Interrupt aktiv freigeben, damit er ausgeführt werden kann. in diesem Falle wäre der Befehl Enable INT0.
    Zweitens muss man eine "globale" Aktivierung aller Interrupts vornehmen, und zwar mit dem Befehl Enable Interrupts.
    Nur wenn der einzelne Interrupt freigegeben ist UND die globale Freigabe erfolgt ist, werden Interrupts auch ausgeführt. Sinn dieser doppelten Freigabe-Ebene ist es, die Interrupts sowohl einzeln und gezielt ein- und ausschalten zu können, aber auch mit einem einzigen Befehl (disable Interrupts) global alle Interrupts zu deaktivieren, z.B. wenn der Controller gerade eine zeitkritische Aufgabe abarbeitet, bei der er nicht gestört werden darf.

    Interrupt-Routinen (ISR) sollte so kurz wie möglich sein, um den Ablauf des Hauptprogramms nicht allzusehr aufzuhalten. In Deinem Fall könnte man das Subtrahieren der Werte aber auch gleich mit der fallenden Flanke mit erledigen und dem Hauptprogramm durch setzen eines Flag-Bits singalisieren, dass es eine neu gemessene Pulsdauer gibt. Dein Code war schon nahe dran:

    Code:
    ...
    Dim Signal_alt as Byte
    Dim Signal_neu as Byte
    Dim Flag as Bit
    Dim Impulsdauer as Byte
    
    Config INT0 = change
    On INT0 Flanke
    enable INT0
    Enable Interrupts
    
    Do
    ...
    ...
    
     If Flag = 1 then
      Flag = 0
      ...
      (Schauen, ob der neue Impuls anders war als der zuletzt gemessene)
      ...
     End if
    
    Loop
    
    ISR_Flanke:
     If PINB.1 = 1 then 
      Signal_alt = Timer0
     Else
      Signal_neu = Timer0
      Impulsdauer = Signal_neu - Signal_alt
      Flag = 1
     End if
    Return

    So könntest Du erstmal einen einfachen Code stricken der zunächst einmal nur überprüft, ob sich die Impulslänge nennenswert verändert hat. Wenn dieser Code läuft, könnte man den PWM-Teil dazubasteln!
    Geändert von Sauerbruch (14.03.2016 um 20:53 Uhr)

Ähnliche Themen

  1. LED-Scheinwerfer mit 3.000 Lumen
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 10
    Letzter Beitrag: 18.04.2013, 14:57
  2. Scheinwerfer und Blaulicht
    Von markus788 im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 26.10.2012, 16:12
  3. LED- und IR- Scheinwerfer
    Von fabqu im Forum Robby RP6
    Antworten: 18
    Letzter Beitrag: 15.02.2011, 19:43
  4. Dmx RGB Led Scheinwerfer
    Von Maxtronik im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 07.06.2010, 22:39
  5. DMX-LED-RGB Scheinwerfer
    Von rideyourstyle im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 24.10.2008, 13:55

Berechtigungen

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

Labornetzteil AliExpress