www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED Dimmer per UART steuern: Flackern


Autor: Pascal (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

habe einen kleinen LED Dimmer gebaut der per UART steuerbar ist. Da er 
nichts anderes macht als LEDs dimmen, habe ich einfach folgenden Code 
(BASCOM) verwendet:
Do
   ' Berechnet die Helligkeit der einzelnen LEDs, es gibt unterschiedliche Programme
   Call Managebrightness

   ' Dimmt die LEDs
   Call Dimleds
Loop

' Liest per Interrupt neuen Helligkeitswert per UART ein, der dann in Managebrightness verwendet wird
Sub Serial0charmatch()
   Local Incoming_data As String * 25

   'Daten vom Buffer auslesen
   Input Incoming_data Noecho

   Targetbrightness = Val(incoming_data)
End Sub

' Hier wird anhand verschiedener Parameter die LED an Ausgang "Ledcontroller1" gedimmt
Sub Dimleds

   'LEDs1
   Pwmctr1 = Pwmctr1 + 1

   Tmphelligkeit = 256 - Flackerh1

   If Pwmctr1 = Tmphelligkeit Then
        Ledcontroller1 = 1
   End If

   If Pwmctr1 = 255 Then
      Pwmctr1 = 0
      If Flackerh1 < 255 Then
         Ledcontroller1 = 0
      End If
   End If

End Sub

Das funktioniert auch alles sehr gut, das einzige Problem ist folgendes: 
Wenn ich per UART einen neuen Wert sende, dann flackern die LEDs kurz. 
Liegt natürlich vermutlich daran, dass die Interrupt Routine einfach zu 
lange braucht.

Gibt es eine Möglichkeit, dies zu verbessern? Ich habe auch schon einen 
Timer für das Dimmen verwendet statt die Main-Loop, kommt aber aufs 
gleiche raus. Ich arbeite mit 8Mhz.

Danke & Viele Grüße,
Pascal

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PIC, AVR, ... ???

Autor: snowfly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei BASCOM nehme ich mal AVR an.

Warum nimmst du nicht einfach Hardware PWM?
da flackert nix

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.