PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnissproblem bei Code zum Tastenauslesen



hitn_cry
12.03.2007, 14:31
Hallo Leute,

da ich immer Probleme beim Tastenauslesen mit dem Rn control hatte,
habe ich mir überlegt ein kleines Tastenauslese Program zu schreiben und mir mal die Werte aunzusehen die bei gedrückter Taste anliegen.

Dies sieht nun so aus



$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

Config Adc = Single , Prescaler = Auto

Config Pina.7 = Input
Porta.7 = 1

Dim I As Byte
Dim W As Word

Print "Tasten werden ausgelesen"
Print
Print

Do
Start Adc
W = Getadc(7)

If W < 1023 Then
Print "Ausgelesener Wert fuer gedrueckte Taste"
Print
Print "@@@@ " ; W ; " @@@@"

Print
End If
Waitms 100
Loop

End

Mein Problem so funktioniert das ganze jetzt, jedoch hatte ich vorher die waitms 100 am Ende nicht drin. Da warf er mir sobald ich eine Taste drücke erst den richtigen wert aus, und dann ununterbrochen 1023.

Hab durch Probieren halt mal diesen Wait gesetzt und jetzt gehts.

Aber würd gern wissen warum ? :-D

Jon
12.03.2007, 14:45
Mir fällt aller erstes auf, dass du im Code nicht sagst, welche spannung er zum vergleichen nehmen soll.
Also müsstest du die Zeile
"Config Adc = Single , Prescaler = Auto"
So erweitern für 5Volt:
"Config Adc = Single , Prescaler = Auto , AREF=AVCC"
Oder für 2,56Volt so:
"Config Adc = Single , Prescaler = Auto , AREF=internal"

jon

hitn_cry
12.03.2007, 17:21
Bei keiner angabe greif er ja automatisch auf die anliegende Referenzspannung zurück wenn ich das richtig verstehe. Aber warum
klappts mit Wait und ohne nicht?