Bitte kurz mein Code anschauen

#2172782
Lesenswert?

$regfile = "attiny13.dat"
$hwstack = 10
$swstack = 10
$framesize = 8


Dim R As Byte
Dim G As Byte
Dim B As Byte
Dim Ad As Word

Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output

R = Portb.0                                                 'Alias fuer 
die RGB Ports setzen
G = Portb.1
B = Portb.2

Config Timer0 = Pwm , Prescale = 1 , Compare A Pwm = Clear Down
Config Adc = Single , Prescaler = Auto

Start Adc
Enable Timer0


Do

Ad = Getadc(3)

Select Case Ad
Case 50 To 100
   R = 125
   Case 100 To 150
   R = 250
   Case 200 To 250
   R = 125
   G = 125
   Case 250 To 300
   G = 250
   Case 350 To 400
   G = 125
   B = 125
   Case 400 To 450
   B = 250
   Case 450 To 500
   B = 125
   R = 125
End Select

Loop

End

Hm, ich glaube, das wird nichts.
Da fehlt prinzipiell erstmal die PWM. Du versuchst einfach, irgendwelche 
imaginären Werte an ein Portpin zu schreiben, das geht nicht, kann nur 0 
oder 1 sein.
Dann hat deine case-Auswahl Lücken )0..49, 151...199, >500
Ausserdem solltest du in jedem Zweig die kompletten Daten für R,G und B 
erzeugen.
Das auf den 1. Blick :-)
#2172824
Lesenswert?

Falls du die LEDs nur ein oder ausschalten willst, geht das mit deinem 
Ansatz.
Willst du dimmen, solltest du dir hier ein paar Kapitel über 
Software-PWM reinziehen (gibts genug darüber), da der Tiny nicht genug 
Hardware-PWM-Kanäle hat.

Schaltbetrieb:
Pseudocode:
case <50:
  R=0; G=0; B=0;      //alle aus
case 50 bis 100:
  R=1; G=0; B=0;      //Rot ein
usw, je nachdem, was du willst.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren