PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Über AD-Wandler 10 LEDs ansteuern



oiermann
18.03.2007, 12:50
Ich möchte mit einem AD-Wandler Spannungen von 0 bis 5V einlesen und dann in 0.5V Schritten 10 LEDs angehen lassen bzw wieder ausgehen.

Jetzt habe ich da etwas mit IF-Schleifen Programmiert, aber das funktionierte
nicht.
Dann hab ich ein Display angeschlossen und da zeigt es die Werte richtig an *wunder*. Die LEDs kann ich auch so ansteuern, das funktioniert also.
Jetzt habe ich es so gemacht, dass, solbald eine Spannung von 0,5V oder mehr anliegt, alle LEDs blinken sollen. Das Funktioniert auch nicht!
Der Endwert der SUB Messen ist in Ad
Hier der code:


$regfile = "attiny2313.dat"
$crystal = 8000000

' Festlegen der Ports der jeweiligen LEDs
Led1 Alias Portd.0
Led2 Alias Portd.1
Led4 Alias Porta.0
Led3 Alias Porta.1
Led5 Alias Portd.2
Led6 Alias Portd.3
Led7 Alias Portd.4
Led8 Alias Portd.5
Led9 Alias Portb.3
Led10 Alias Portb.4

' "Hauptprogramm"

Do
' Gosub Ledsaus
Gosub Messen
Gosub Ausgeben
Loop

' Unterprogramme
Messen:

Ddrb.0 = 0
Portb.0 = 1
Ddrb.1 = 1
Ddrb.2 = 1

Dat Alias Pinb.0
Clk Alias Portb.1
Cs Alias Portb.2

Dim I As Byte
Dim Adbit As Byte
Dim Ad As Word
Dim U As Integer


Set Cs
Do
Adbit = 0 : Ad = 0
Reset Clk
Reset Cs
Waitus 2
For I = 1 To 8
Set Clk
Shift Ad , Left
Ad = Ad + Dat
Reset Clk
Next
Shift Ad , Left
Set Cs
Set Clk
Waitms 500
Loop
Return


Ledsaus:
Waitms 500
Led1 = 0
Led2 = 0
Led3 = 0
Led4 = 0
Led5 = 0
Led6 = 0
Led7 = 0
Led8 = 0
Led9 = 0
Led10 = 0
Return


Ausgeben:
If Ad > 25 Then
Do

Toggle Led1
Toggle Led2
Toggle Led3
Toggle Led4
Toggle Led5
Toggle Led6
Toggle Led7
Toggle Led8
Toggle Led9
Toggle Led10
Waitms 300
Loop
End If

Return

Es bleiben einfach alle LEDs aus... An was kann das liegen?