-         

Ergebnis 1 bis 2 von 2

Thema: UART mehrere Bytes empfangen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    26
    Beiträge
    200

    UART mehrere Bytes empfangen

    Anzeige

    Hallo,
    Ich hab noch ein kleines Problem in meiner Software. Und zwar will ich 4Bytes über UART empfangen und dann Motoren nach den Werten ausrichten. Ich hab das jetzt so gelöst:
    Code:
    uartin:
    	in srsr, sreg
    	cbi UCSRB, RXCIE
    	in newpan, UDR
    tiltin:
    	sbis UCSRA, RXC
    	rjmp tiltin
    	in newtilt, UDR
    	lsr newtilt
    geschw:
    	sbis UCSRA, RXC
    	rjmp geschw
    	in tempo, UDR
    ledhell:
    	sbis UCSRA, RXC
    	rjmp ledhell
    	in led, UDR
    	lsr led
    
    	ldi temp, (1<<WGM12) | (1<<CS10)
    	out TCCR1B, temp
    	ldi temp, (1<<OCIE1A) | (1<<TOIE0)
    	out TIMSK, temp
    	out sreg, srsr
    	reti
    Es wird also beim 1. Byte ein Interrupt ausgelöst, dann werden die nächsten Bytes über sbis abgewartet. Das klappt soweit auch ganz gut. Das Problem besteht darin, dass Ich den Interrupt ausschalte und erst nach dem stellen der Motoren wieder anschalte. Wenn nun also in dem Tier Interrup, der die Motoren stellt, ein Byte gesendet wird, wird dieses ignoriert, dafür wird dann aber eins der nächsten Byte anstelle des ersten genommen, somit kommt alles durcheinander. Könnt Ihr mir da helfen?

    griß, homedom

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.05.2006
    Ort
    Rheinzabern
    Alter
    26
    Beiträge
    200
    Man bin ich blöd.. Ich hab einfach den Interrupt am Ende von Uartin wieder aktiviert und siehe da es geht PERFEKT.. Falls es jemanden Interessiert.. ansosnsten kann man den Thread löschen...

    gruß homedom

Berechtigungen

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