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:
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
Der Code funktioniert nur ein einziges Mal nach dem Flashen. Die einzelnen Routinen "Get_Position", "Get_Byte" und "SetCoordinates" funktionieren fehlerfrei.
Was mache ich falsch?

Vielen Dank im Voraus!
Ruppi