В данном уроке мы с Вами настроим UART как на прием так и на передачу. Для начала мы с Вами настроим связь без использования прерывания. Дальше научимся использовать прерывания, а так же сможем передавать символы и получать их. Назначение всех регистров для работы UART можно посмотреть в моих уроках по AVR. Там же Вы найдете расчет значения BAUD.
out_com: ; посылка байта sbis UCSRA, UDRE ; ждем готовности буфера передатчика rjmp out_com out UDR, temp ; отсылаем ret
in_com: ;прием байта sbis UCSRA, RXC ; ждем готовности буфера приемника rjmp in_com in temp, UDR ; принимаем ret
Reset: ldi temp, Low(RAMEND) ; out SPL, temp ; ldi temp, High(RAMEND) ; out SPH, temp ;
;==UART== ; асинхронный режим, F = 4MГц ldi temp, 25 ; скорость передачи 9600 при 4МГц BAUD = 25 out UBRRL, temp ldi temp, (1<<RXEN)|(1<<TXEN); разрешение приема/передачи out UCSRB, temp
Gcykle: rcall in_com ; ждем любого байта rcall out_com ; отсылаем обратно rjmp Gcykle