-         

Ergebnis 1 bis 3 von 3

Thema: Select Case Struktur

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216

    Select Case Struktur

    Anzeige

    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

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    23.02.2005
    Beiträge
    44
    Kann jetzt nicht wirklich Fehler erkannen, dafür müsstest du noch den Rest des Codes posten, aber auf jeden Fall dauf for das "out" kein Ausrufungszeichen.

    Achja, abfragen ob daten da sind im Register UCSRA Pin RXC

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    hallo!
    glaube, jetzt hast du dich etwas vertan. das ausrufezeichen vor dem "out" muss in den code, weil ich mit Bascom programmiere und "out" dort ein schlüsselwort ist. das geht also in ordnung.
    die andere sache mit dem ucsra register muss ich nicht abfragen, weil ich nicht mit der seriellen schnittstelle arbeite. ich betreibe die kommunikation mit einem ftdi245 USB chip, da ist alles ein wenig anders.
    die ganze sache scheitert auch nicht an der kommunikation selber, denn die läuft wirklich fehlerfrei. ich glaube mittlerweile eher, dass es am compiler selber liegt, denn der code scheint in ordnung zu sein.

    trotzdem aber vielen dank für deine mühe!
    ruppi

Berechtigungen

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