Mike_MA » 06 окт 2005, 17:17
Вот например кусок из проги для ATmega162, кусок инициализации УАППа:
"
; инициализация последовательного интефейса USART0
;USART Control and Status Register B ? UCSRB
; 11111000 - full (0xF8)
; 10010000 - only receiver on (0x90)
;
sts UART_bin_Flags_H,r0
sts UART_bin_Flags_L,r0
ldi r16,UBRR_num_L ;
out UBRR0L,r16 ; записываем значение в регистр счётчика
ldi r17,UBRR_num_H ;
ldi r18,0x8E
out UBRR0H,r17 ; записываем значение в регистр счётчика
out UCSR0C,r18
ldi r16,0x90 ; записываем в регистр байт вкл приёмника
out UCSR0B,r16 ; записываем в регистр управления
nop
nop
;----------------------------------------------------
"
Единственное отличие этого контроллера от меги16 - два УАППа. Но пара регистров UBRR0H, UCSR0C находится по одному и тому же адресу.
Проверять в AVR Studio что записано в любом из этих регистров через отладчик - бесполезное занятие. Нужно проверять только на живом контроллере и без точек останова на командах чтения/записи этих регистров.