Jenssnej
19.08.2011, 17:45
Hallo,
Ich habe versucht den 16 Bit Schieberegister von einem Snes Controller aus zu lesen.
Unter rn-wissen steht auch eine Anleitung dazu aber ich komme da nicht weiter.
hier erstmal der Link: www.rn-wissen.de/index.php/SNES_Controller (http://www.rn-wissen.de/index.php/SNES_Controller)
ich habe versucht das mit Waitus zu realiesiren aber irgendwie liest der so nichts aus ...
kann mir da jemand weiter helfen ?
$regfile = "m32def.dat" 'für mega 32
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'für rs232
' Um das Register auszulesen muss der SNES Controller zunächst initialisiert werden:
Config Portc.0 = Output 'Clock
Config Portc.1 = Output 'Latch
Config Portc.2 = Input 'Data
Portc.2 = 0 'Pullup Widerstand ein
Portc.0 = 1
Portc.1 = 0
' Tasten auf dem Controller
Dim Rauf As Integer
Dim Runter As Integer
Dim Links As Integer
Dim Rechts As Integer
Dim Go As Integer
Dim Sel As Integer
Dim A As Integer
Dim B As Integer
Dim Y As Integer
Dim X As Integer
Dim L As Integer
Dim R As Integer
Dim I As Integer
' ---------------------------------------------------------
' --------------------- Hauptprogramm ---------------------
' ---------------------------------------------------------
Do
' Die Datenübertragung muss initialisiert werden.
' Dieser Schritt muss bei jedem Auslesen des Registers durchgeführt werden.
Portc.1 = 1
Waitus 12
Portc.1 = 0
' Nun können die 16 Bit des Registers wie folgt ausgelesen werden
' (folgendes also 16 Mal wiederholen)
For I = 0 To 15
Waitus 6
Portc.0 = 0
If I = 0 Then
Print Portc.2
Elseif I = 1 Then
Print Portc.2
Elseif I = 2 Then
Print Portc.2
Elseif I = 3 Then
Print Portc.2
Elseif I = 4 Then
Print Portc.2
Elseif I = 5 Then
Print Portc.2
Elseif I = 6 Then
Print Portc.2
Elseif I = 7 Then
Print Portc.2
Elseif I = 8 Then
Print Portc.2
Elseif I = 9 Then
Print Portc.2
Elseif I = 10 Then
Print Portc.2
Elseif I = 11 Then
Print Portc.2
Elseif I = 12 Then
Print Portc.2
End If
Waitus 6
Portc.0 = 1
Next I
' ---------------------------------------------------------
' ------------------ Hauptprogramm Ende -------------------
' ---------------------------------------------------------
Print "Ende"
Wait 1
Loop
End
Ich habe versucht den 16 Bit Schieberegister von einem Snes Controller aus zu lesen.
Unter rn-wissen steht auch eine Anleitung dazu aber ich komme da nicht weiter.
hier erstmal der Link: www.rn-wissen.de/index.php/SNES_Controller (http://www.rn-wissen.de/index.php/SNES_Controller)
ich habe versucht das mit Waitus zu realiesiren aber irgendwie liest der so nichts aus ...
kann mir da jemand weiter helfen ?
$regfile = "m32def.dat" 'für mega 32
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600 'für rs232
' Um das Register auszulesen muss der SNES Controller zunächst initialisiert werden:
Config Portc.0 = Output 'Clock
Config Portc.1 = Output 'Latch
Config Portc.2 = Input 'Data
Portc.2 = 0 'Pullup Widerstand ein
Portc.0 = 1
Portc.1 = 0
' Tasten auf dem Controller
Dim Rauf As Integer
Dim Runter As Integer
Dim Links As Integer
Dim Rechts As Integer
Dim Go As Integer
Dim Sel As Integer
Dim A As Integer
Dim B As Integer
Dim Y As Integer
Dim X As Integer
Dim L As Integer
Dim R As Integer
Dim I As Integer
' ---------------------------------------------------------
' --------------------- Hauptprogramm ---------------------
' ---------------------------------------------------------
Do
' Die Datenübertragung muss initialisiert werden.
' Dieser Schritt muss bei jedem Auslesen des Registers durchgeführt werden.
Portc.1 = 1
Waitus 12
Portc.1 = 0
' Nun können die 16 Bit des Registers wie folgt ausgelesen werden
' (folgendes also 16 Mal wiederholen)
For I = 0 To 15
Waitus 6
Portc.0 = 0
If I = 0 Then
Print Portc.2
Elseif I = 1 Then
Print Portc.2
Elseif I = 2 Then
Print Portc.2
Elseif I = 3 Then
Print Portc.2
Elseif I = 4 Then
Print Portc.2
Elseif I = 5 Then
Print Portc.2
Elseif I = 6 Then
Print Portc.2
Elseif I = 7 Then
Print Portc.2
Elseif I = 8 Then
Print Portc.2
Elseif I = 9 Then
Print Portc.2
Elseif I = 10 Then
Print Portc.2
Elseif I = 11 Then
Print Portc.2
Elseif I = 12 Then
Print Portc.2
End If
Waitus 6
Portc.0 = 1
Next I
' ---------------------------------------------------------
' ------------------ Hauptprogramm Ende -------------------
' ---------------------------------------------------------
Print "Ende"
Wait 1
Loop
End