Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- COPY_DATA:
- ldi ZL, low(FLASH_MESSAGE<<1)
- ldi ZH, high(FLASH_MESSAGE<<1)
- ldi XL, low(RAM_BUFFER) ;RAM is byte addressed so we don't need to shift
- ldi XH, high(RAM_BUFFER)
- clr r17
- COPY_DATA_1:
- lpm Temp2,Z+ ;read one byte and increase Z_Pointer
- st X+, Temp2 ;write one byte on the x-pointer
- ;wie zähle ich mit wieviele daten ich noch verarbeiten muss
- cpi Temp2, zero
- breq END_MESSAGE ;if zero==0 branch to END_MESSAGE
- call UARTC0_WRITE
- rjmp COPY_DATA_1
- ret
- END_MESSAGE:
- ret ;return to main program
- UARTC0_WRITE:
- WAITFOR_DREIF:
- lds Temp2, USARTC0_STATUS
- sbrs Temp2, USART_DREIF_bp ;wait until DREIF is ready for next byte
- rjmp WAITFOR_DREIF
- sts USARTC0_DATA, char ;send character
- ret
Advertisement
Add Comment
Please, Sign In to add comment