LED Dimmer per UART steuern: Flackern

Gast #2100294
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:
1
Do
2
   ' Berechnet die Helligkeit der einzelnen LEDs, es gibt unterschiedliche Programme
3
   Call Managebrightness
4

5
   ' Dimmt die LEDs
6
   Call Dimleds
7
Loop
8

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

13
   'Daten vom Buffer auslesen
14
   Input Incoming_data Noecho
15

16
   Targetbrightness = Val(incoming_data)
17
End Sub
18

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

22
   'LEDs1
23
   Pwmctr1 = Pwmctr1 + 1
24

25
   Tmphelligkeit = 256 - Flackerh1
26

27
   If Pwmctr1 = Tmphelligkeit Then
28
        Ledcontroller1 = 1
29
   End If
30

31
   If Pwmctr1 = 255 Then
32
      Pwmctr1 = 0
33
      If Flackerh1 < 255 Then
34
         Ledcontroller1 = 0
35
      End If
36
   End If
37

38
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.