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:
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?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
griß, homedom







Zitieren

Lesezeichen