сижу мучаю мегу88, точнее она меня мучает.. не могу заставить УАРТ работать...
Обработчик прерывания по RX
- Код: Выделить всё • Развернуть
URX:
lds tmp1, 0xc6
URX_send_data:
lds tmp2, UCSR0A
sbrs tmp2, UDRE0
rjmp URX_send_data
sts UDR0, tmp1
reti
Инициализация
- Код: Выделить всё • Развернуть
usart_init:
ldi tmp1, 0b00000010
sts UCSR0A, tmp1
ldi tmp1, 15
sts UBRR0L, tmp1
ldi tmp1, 0b10011000
sts UCSR0B, tmp1
ldi tmp1, 0b00000110
sts UCSR0C, tmp1
ldi tmp1, 0x0
sts UBRR0H, tmp1
ret
в студии команда
- Код: Выделить всё • Развернуть
lds tmp1, 0xc6
, которая была сначала
- Код: Выделить всё • Развернуть
lds tmp1, UDR0
не читает нифига из UDR0, собственно данные там и не держаться.. выставишь, 1 шаг и они обнуляются.. ну а железо в ответ на любой символ с терминала шлет A