PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Portzustand in Variable schreiben?



Tob
28.05.2007, 12:09
Hallo zusammen,

ich bastle gerade an einer Schaltung mit meinem Atmega 32 bei der ich ein Byte
über einen I/O Port einlesen bzw. an eine Variable übergeben möchte um ihn mit einer
IF-Bedingung zu verarbeiten.
Allerdings weis ich nicht welche Befehle in Bascom dafür vorgesehen sind.

Ich habs schon mit dem "INP" Befehl versucht aber der hat nicht funktioniert.
(vllt hab ich die falsche Adresse angegeben oder ich hab in falsch vewendet!)

Wäre net wenn ihr mit helfen könntet. 8-[

Rofo88
28.05.2007, 12:18
Mal was ganz einfaches

Dim X as Byte
x = PinB

Damit sollte er die Pins von PortB in ne Variable X einlesen

MfG RoFo88

xunwichtig
28.05.2007, 12:21
Ich nuze folgende Lauftechnik, um Tastenabfragen abzufragen. Im speziellen, ob sie >gedrückt wurde< oder >losgelassen wurde<. nicht ob sie >gedrückt IST< oder >nicht Gedrückt IST<

Xkeylast = Xkeyak 'Aktuelle Tastenzustände als letzte Tastenzustände setzen
Xkeyak = 0 'Aktuelle Tastenzustände auf 0 setzen (keine taste gedrückt)
If Pind.6 = 0 Then Xkeyak = Xkeyak Or 2 'Start-Taste prüfen
If Pind.4 = 0 Then Xkeyak = Xkeyak Or 4 'New Taste prüfen
If Pind.5 = 0 Then Xkeyak = Xkeyak Or 8 'Stop Taste prüfen

For Xtb1 = 1 To 4 'Alle Tasten durchgehen
If Keycheck(xkeylast , Xtb1) = 0 Then 'Taste (XTB1) zuletzt NICHT gedrückt?
If Keycheck(xkeyak , Xtb1) = 1 Then 'Taste (XTB1) jetzt gedrückt?
'Taste wurde gedrückt, jezt kann hier weiter gearbeitet werden
End If
End If
Next

'================================================= ==============================
Function Keycheck(v_keydata As Byte , B_key As Byte) As Byte 'Funktion zur prüfen eines Tastenzustandes anhand einer Tasten-Zustandsmaske
Xtb2 = 2 ^ B_key 'Tasten-Bitmaske berechnen
Xtb2 = V_keydata And Xtb2 'Tasten-Bitmaste mit aktuellen zuständen verknüpfen
If Xtb2 > 0 Then Keycheck = 1 'Prüfen, ob Taste gedrückt ist
End Function 'Funktion verlassen

Tob
28.05.2007, 19:49
Danke Rofo für deine Hilfe, genau des hab ich gesucht^^