Gast
#1976769
Hallo,
ich sende aus meiner SW ein High- und LowByte und empfange es mit meinem
ATmega32 via USART-Interrupt. Allerdings funktioniert das nicht mit
Zahlen >1 Byte.
Wie stelle ich es an um Werte bis 512 auszuwerten?
Vielen Dank!
RESET_START:
LDI temp, LOW(RAMEND)
OUT SPL, temp
LDI temp, HIGH(RAMEND)
OUT SPH, temp
//outputs
LDI temp, 0xFF
OUT DDRA, temp
LDI temp, 0x0F
OUT DDRC, temp
// init Interrupts
LDI temp, (1<<ISC01) | (1<<ISC11)
OUT MCUCR, temp
LDI temp, (1<<INT0) | (1<<INT1)
OUT GICR, temp
//InitUSART
CLR temp
OUT UBRRH, temp
LDI temp, ((CLOCK/4000000)-1)
OUT UBRRL, temp
LDI temp, (1<<URSEL)|(3<<UCSZ0)|(1<<USBS)
OUT UCSRC, temp
IN temp, UDR
CLR temp
OUT UCSRA, temp
SBI UCSRB, RXCIE
SBI UCSRB, RXEN
SEI
loop: RJMP loop
//Interrupt
USART_RXC:
in R4, HIGH(udr)
in R5, LOW(udr)
//rcall binBCD
OUT PORTA, R3
OUT PORTC, R2
RETI