-
        

Ergebnis 1 bis 2 von 2

Thema: SNES Controller

  1. #1

    SNES Controller

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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

    ich habe versucht das mit Waitus zu realiesiren aber irgendwie liest der so nichts aus ...
    kann mir da jemand weiter helfen ?

    Code:
    $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

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Also, ohne mich groß in den SNES-Controller eingedacht zu haben, fällt mir schon mal ein "klassischer" Fehler auf:
    Du konfigurierst C.2 als Input, schreibst dann aber "Print PORTC.2". Ich nehme ja mal an, dass Du den Eingangspegel an C.2 meinst - diese müssen aber über die PIN-Register abgefragt werden (also Print PINC.2). Mit PORTC.2 beeinflusst Du den PullUp-Widerstand, der aktiviert wird, wenn PORTC.2 1 ist (und nicht 0).

    Darüber hinaus fällt mir auf, dass Du in der langen "Elseif"-Schleife für alle I-Werte genau das gleiche machst, nämlich Print PORTC.2. Mal davon abgesehen, dass wahrscheinlich PINC.2 gemeint sein dürfte, könntest Du das Ganze wesentlich einfacher haben:

    Code:
    Portc.1 = 1
    Waitus 12
    Portc.1 = 0
    
    For I = 0 To 15
    Waitus 6
    Portc.0 = 0
    Print PINC.2
    Waitus 6
    Portc.0 = 1
    Next I' 
    
    ---------------------------------------------------------
    ------------------ Hauptprogramm Ende -------------
    ---------------------------------------------------------
    
    Print "Ende"
    Wait 1
    Loop
    End

Ähnliche Themen

  1. Controller, Board, Servo Controller fuer den Spiderbot?
    Von Kiraminh im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 11.12.2007, 17:38
  2. RXD/ TXD - Controller <--> Controller - Tutorial?
    Von squelver im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 27.08.2007, 13:50
  3. SNES Controller am PC (LPT Adapter)
    Von TheMayhem im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 15
    Letzter Beitrag: 16.07.2007, 10:03
  4. Controller FAQ
    Von Free Faq im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 07.08.2005, 16:02
  5. [ERLEDIGT] 3,3V Controller mit 5V Controller verbinden
    Von im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 10.09.2004, 22:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •