-
AT90S8535 + GetADC
Hallo,
habe an meinem AVR ein 10k Schiebepoti angeschlossen. Diese ist an PortA.0 ! an PortB hängen 8 Led´s. mit dem poti regle ich 5V ( oberste Stellung ) und 0V ( unterste Stellung ). wie kann ich es realisieren, das bei 0V keine LED an ist und bei 5V alle Led´s leuchten. also je höher ich das Poti schiebe, umso mehr led´s gehen an. ich hab das mal probiert, aber die led´s wollen nicht so wie ich will. das mit GetADC klappt nur die led´s net.
mfg Kay
-
Poste doch mal deinen Programmcode!
-
Also vorab der Programmcode. mir wurde gesagt, man könnte das ganz einfach mit einer Lookup Tabelle machen oder so. aber ich bekomms einfach net hin
Code:
$regfile = "8535def.dat"
$crystal = 4000000
Ddrb = 3 : Portb = 3
Const An = 0
Const Aus = 1
Led0 Alias Portb.0
Led1 Alias Portb.1
Led2 Alias Portb.2
Led3 Alias Portb.3
Led4 Alias Portb.4
Led5 Alias Portb.5
Led6 Alias Portb.6
Led7 Alias Portb.7
Dim W As Word
Dim Volt As Single
Const Ref = 5 / 1023
Config Adc = Single , Prescaler = Auto
Start Adc
Do
W = Getadc(0)
Volt = W * Ref
If Volt = 1 Then Led0 = An
If Volt = 2 Then Led1 = An
If Volt = 3 Then Led2 = An
If Volt = 4 Then Led3 = An
Loop
-
Vermutlicxh liegt es nur daran das du nur volle Spannungen in den IF-Abfragen angibst. Bei Bascom Single-Werten können ja auch krumme Werte raus kommen und dann würde sich bei deinem Programm nix tun.
Probier es doch mal mit geänderten IF-Abfragen, also so
Code:
$regfile = "8535def.dat"
$crystal = 4000000
Ddrb = 3 : Portb = 3
Const An = 0
Const Aus = 1
Led0 Alias Portb.0
Led1 Alias Portb.1
Led2 Alias Portb.2
Led3 Alias Portb.3
Led4 Alias Portb.4
Led5 Alias Portb.5
Led6 Alias Portb.6
Led7 Alias Portb.7
Dim W As Word
Dim Volt As Single
Const Ref = 5 / 1023
Config Adc = Single , Prescaler = Auto
Start Adc
Do
W = Getadc(0)
Volt = W * Ref
If Volt > 1 Then Led0 = An
If Volt > 2 Then Led1 = An
If Volt > 3 Then Led2 = An
If Volt > 4 Then Led3 = An
Loop
-
Ja,
daran wird das liegen. Aber mit dem anderen Code funktionierts.
Warum benutzt du nicht gleich den Adc-Wert? Also:
...
if Volt > 120 then Led0 = an
if Volt > 240 then Led1 = an
...
mfg God