Gast
#342338
Hallo zusammen,
ich versuche verzweifelt mit Hilfe meines STK500 und einem Tiny2313 per
Tastendruck einen USART-Befehl zu versenden.
Aber das Ding macht einfach nicht, was ich will!!! ;-) Ich bin kurz
davor aufzugeben. :-(
Was ist an meinem Code falsch? Ich bin gerade erst dabei, das Programm
zu entwickeln und es steckt absolut noch in den Kinderschuhen. Aber
schon jetzt macht es mir große Probleme.
Ich hoffe jemand kann mir den Fehler sagen. Ich wäre soooooooo dankbar.
:-)
Im Voraus vielen Dank.
Gruß
Markus
.include "tn2313def.inc" ;Definitionsdatei laden
.def akku = r16
.def switch = r17
.cseg
rjmp start
.org 0x16
start:
ldi akku, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse
out SPL, akku
rcall USART_Init
ldi akku, 0x81
rcall USART_Transmit
ldi akku, 0x01
rcall USART_Transmit
ldi akku, 0x04
rcall USART_Transmit
ldi akku, 0x3F
rcall USART_Transmit
ldi akku, 0xFF
out PORTB, akku
main:
in switch, PINB
cpi switch, 0b11111111
brne LEFT
;Alternative: sbis PORTB,0
; rcall LEFT
rjmp main
USART_Init:
;set baud rate
ldi r17,0
ldi r16, 23
out UBRRH, r17
out UBRRL, r16
;Enable receiver and transmitter
ldi r16, (0<<RXCIE) | (0<<RXEN) | (1<<TXEN)
out UCSRB,r16
;set frame format: 8data, 1stop bit
ldi r16, (0<<USBS) | (3<<UCSZ0)
out UCSRC,r16
ret
USART_Transmit:
sbis UCSRA, UDRE
rjmp USART_Transmit
out UDR,akku
ret
LEFT:
ldi akku, 0x81
rcall USART_Transmit
ldi akku, 0x01
rcall USART_Transmit
ldi akku, 0x04
rcall USART_Transmit
ret
.EXIT