Hier, wäre das, was ich als kleine Starthilfe bieten kann:
Code:;Diese Parameter müssen gesetzt werden, um die Datenrate zu setzen .equ CLOCK = 3686400 .equ BAUD = 115200 ;Kann auch 4800, 9600, etc. sein! .equ UBRRVAL = CLOCK/(BAUD*16)-1 .def COM_Data_RX = r14 .def COM_Data_TX = r15 ;TX/RX können auch ein Register sein! .def temp = r16 ;------------------------------------------------------ ; Serielle Kommunikation einstellen... ;------------------------------------------------------ ; Baudrate einstellen LDI temp, LOW(UBRRVAL) ; LDI temp, UBRRVAL OUT UBRRL, temp LDI temp, HIGH(UBRRVAL) OUT UBRRH, temp ;Schnittstelle einstellen... ;Bit7: N/A ;Bit6: 1=syncrone Kommunikation ; 0=asyncrone Kommunikation ;Bit5/4: Parity Mode ; 0:0=Disable ;Bit3: Stop Bit set ; 0=1 Bit ; 1=2 Bits ;Bit2/1 Character/Framesize ; 0:0:0=5-bit ; 0:0:1=6-bit ; 0:1:0=7-bit ; 0:1:1=8-bit ; 1:1:1=9-bit ;Bit0 Clock priorty LDI temp, 0b00000000 OUT UCSRC, temp SBI UCSRB, TXEN ; TX aktivieren SBI UCSRB, RXEN ; RX (Empfang) aktivieren ; SBI UCSRB, RXCIE ; Interrupt bei Empfang ; SEI ; Interrups aktivieren Daten_senden: ;--------------------------- SBIS UCSRA,UDRE ;Warten bis UDR für das nächste RJMP Daten_senden ;Byte bereit ist OUT UDR, COM_Data_TX ; COM_Data_TX ist ein Register, was die zu sendenen Daten enthält RET







Zitieren


Lesezeichen