Hallo zusammen!
Ich programmiere erst seit kurzem in Assembler und habe Schwierigkeiten, eine Select Case Struktur zu programmieren. Ich muss dazu sagen, dass ich Assembler im Bascom-Editor programmiere, hoffe jedoch, dass dies keinen Unterschied macht. Hier mal meine Main:
Der Code funktioniert nur ein einziges Mal nach dem Flashen. Die einzelnen Routinen "Get_Position", "Get_Byte" und "SetCoordinates" funktionieren fehlerfrei.Code:Main: 'Daten vom USB-Device abholen, wenn welche bereitstehen sbis Pinb, Rxf 'if RXF=1 then Jump to Main rjmp Main 'Sprung zu Main, falls keine neuen Daten vorhanden 'das empfangene Kommando abrufen. Vorher alle Pins von Portd auf 'Eingang setzen clr t0 !Out Ddrd , t0 'Alle Pins auf Eingang rcall Usb_get_byte 'Byte in t0 speichern 'je nach Kommando die jeweilige Unterroutine aufrufen cpi t0, cmd_position brne Label_1 rcall Usb_send_position jmp Main Label_1: cpi t0, cmd_setcoordinates brne Label_2 rcall Usb_get_position ser t0 !Out Ddrd , t0 'Alle Pins auf Ausgang ldi t0, ok rcall usb_send_byte jmp Main Label_2: jmp Main
Was mache ich falsch?
Vielen Dank im Voraus!
Ruppi







Zitieren

Lesezeichen