Ah danke!
Am CALL dürfte es dann aber allerding nicht liegen, da ich 1. nicht so viel Befehle habe und 2. mein PIC nur max 1024 Befehle aufnehmen kann.
Hier is mal der Code:
UP_Show_btns wird nicht aufgerufen!
Ich vermute es liegt an der Tabelle tab_Joy, hab aber anstatt der Register auch schon konstante Werte in die Tabelle geschrieben... trotzdem Fehlanzeige.
Code:main BSF a_ATT ; ATT auf HIGH, Controller wird abgewählt ; (ignoriert alle Daten) CALL UP_wait_25us BSF a_CLOCK ; Clock HIGH BSF a_COMMAND ; Command HIGH BCF a_ATT ; ATT auf LOW das der Controller ; die Daten annimmt CALL UP_wait_50us ; Warteschlange bis Controller bereit ist CALL UP_Start ;Senden: H'01' Startbefehl CALL UP_Get_Type ;Senden: H'42' Datenanfrage ;------------------------------------ ;Empfangen: H'41'=Digital ;ODER H'23'=NegCon ;ODER H'73'=Analogue Red LED ;ODER H'53'=Analogue Green LED CALL UP_Get_Status ;Empfangen: H'5A' - Status:READY ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_L_btns ;Empfangen: H'xx' - Status der linken Btns ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_R_btns ;Empfangen: H'xx' - Status der rechten Btns ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_R_Joy_X ;Empfangen: H'xx' - rechtes Joystick, X-Achse ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_R_Joy_Y ;Empfangen: H'xx' - rechtes Joystick, Y-Achse ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_L_Joy_X ;Empfangen: H'xx' - linkes Joystick, X-Achse ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Get_L_Joy_Y ;Empfangen: H'xx' - linkes Joystick, Y-Achse ;------------------------------------ ;Senden: H'00' - Idle-Modus CALL UP_Show_btns ;Ausgabe der gXXXX (g=> GET) Register GOTO main ;Springe wieder an den Anfang zurück
Code:;############################################################################### UP_Show_btns MOVLW D'1' MOVWF zaehler ;Zaehler auf 1 setzten Show_1 CLRF PORTB ;PORTB (Anzeige löschen) MOVF zaehler,W ;Zaehler ins Wreg. um mit PCL zu addieren CALL tab_Joy ;Wert aus Tabelle... MOVWF PORTB ;... an PORTB anzeigen... CALL UP_wait_05s ;...(eine halbe Sekunde) INCF zaehler ;Zaehler erhöhen (+1) MOVLW D'5' ;Zaehler mit der Zahl 5 SUBWF zaehler,W ;subtrahieren (Ergebnis ins Wreg.) um BTFSC STATUS,C ;Zaehler auf 5 zu prüfen RETURN ;<--- Zaehler = 5 GOTO Show_1 ;<--- Zaehler < 5 ;###############################################################################Achso ja.... wenn ich keine Tabellen in meinem Programm habe und UP_Show_btns aus "Spagetti-Code" besteht... funktioniert es!Code:;######################### L/R Joystick Tabelle ########################## tab_Joy ;zaehler maximal bis 5 ADDWF PCL,F ; Anzeigen der Position des DT gRJoyX,gRJoyY ; des rechten [x-Achse,y-Achse]... DT gLJoyX,gLJoyY ; und linken [x-Achse,y-Achse] Joysticks
Code:UP_Show_btns ;Ausgabe der Register in denen der Status und die einzelnen Zustände der Buttons stehen CLRF PORTB BSF PORTB,0 ;Register LED (STATUS) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gSTATUS ;Status Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,1 ;Register LED (LINKS) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gLEFT ;LINKS Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,2 ;Register LED (RECHTS) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gRIGHT ;RIGHT Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,3 ;Register LED (rechtes Joxstick x-Achse) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gRJoyX ;RJoyX Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,4 ;Register LED (rechtes Joxstick y-Achse) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gRJoyY ;RJoyY Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,5 ;Register LED (linkes Joxstick x-Achse) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gLJoyX ;LJoyX Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s ;################## CLRF PORTB BSF PORTB,6 ;Register LED (linkes Joxstick x-Achse) [DEBUGGING] CALL UP_wait_05s CLRF PORTB ;######### MOVFW gLJoyY ;LJoyY Register MOVWF PORTB ;an PORTB anzeigen CALL UP_wait_05s RETURN







Zitieren

Lesezeichen