;################################################################################ ;ATMEGA8 - RS232 - ASCII Empfang - Ausgabe als Dezimalwert des ASCII Wertes ;################################################################################ ;Int. Clock 8MHz ;################################################################################ ;Heiko Haedicke 2013 - www.dg7eaz.de ;################################################################################ .include "m8def.inc" .EQU FLAG_USART_RCV= 0 .def sreg_temp=r1 .def temp1=r16 .def temp2=r17 .def temp3 = r18 .def rcv_byte = r19 .def flags = r20 .def tx_ptr = r21 .def temp = r22 .def temp4 = r23 ;################################################################################ ; Definitionen der USART ;################################################################################ .equ takth = 8000000 ; 8 MHz int. Systemtakt .equ baudh = 19200 ; Baudrate .equ BAUDRATE_REGISTER = ((takth+baudh*8)/(baudh*16)-1) ;################################################################################ ; Definition der Interrupts ;################################################################################ .org $0000 rjmp init .org URXCADDR rjmp USART_RX_HANDLER .org int_vectors_size*2 ;################################################################################ ; Initialisierung ;################################################################################ init: ldi temp1,low(ramend) out spl,temp1 ldi temp1,high(ramend) out sph,temp1 rcall usart_init ldi zl,low(MESSAGE_HELLO*2) ldi zh,high(MESSAGE_HELLO*2) rcall usart_message rcall usart_crlf sei ;################################################################################ ;Hauptprogramm ;################################################################################ main: clr flags ;################################################################################ ; Empfang der Zeichen und Ausgabe des Dezimalwertes ;################################################################################ endless: ;Warten auf den Empfang eines Zeichens auf der RS232 sbrc flags,FLAG_USART_RCV rcall usart_rcv_handler rjmp endless ;Epmfangen und Auswerten usart_rcv_handler: cli ; Interrupts aus, werden während der Auswertung nicht benötigt. cbr flags,(1<