Доброго времени суток.
Проблема в следующем. Пытаюсь отправить байт по UART на МК и для индикации использую светодиоды подключённые к порту B.
Отправка проходит, а индикация - сходит с ума.
Отправляю еденицу - загораются PB0, PB1 и PB2 светодиоды. Отправляю двойку - все тухнут.
Но главное - при одном и том-же байте могут загораться разные светодиоды. Отправляю 255 - все молчат. Отправил ещё два раза 255 и загоряться PB1 и PB3. Ещё раз - опять все потухнут.
Для отправки использовал гипер терминал и Terminal v 1.9 скачанный отсюда.
Код обработчика прерываний.
Код инициализации (Может тут чего напутал)
// Прошу прощения, поторопился, и не в тот раздел написал.
Проблема в следующем. Пытаюсь отправить байт по UART на МК и для индикации использую светодиоды подключённые к порту B.
Отправка проходит, а индикация - сходит с ума.
Отправляю еденицу - загораются PB0, PB1 и PB2 светодиоды. Отправляю двойку - все тухнут.
Но главное - при одном и том-же байте могут загораться разные светодиоды. Отправляю 255 - все молчат. Отправил ещё два раза 255 и загоряться PB1 и PB3. Ещё раз - опять все потухнут.
Для отправки использовал гипер терминал и Terminal v 1.9 скачанный отсюда.
Код обработчика прерываний.
Код: Выделить всё
USART_RX:
IN Input,UDR
OUT PortB,Input
LDI R16, (0<<RXC)
OUT UCSRA, R16
RETIКод: Выделить всё
LDI R16, 51 // Скорость - 9600 б/с Кварц - 8Мгц
OUT UBRRL,R16
LDI R16, 0
OUT UBRRH,R16
LDI R16,0
OUT UCSRA, R16
LDI R16, (1<<RXEN)|(0<<TXEN)|(1<<RXCIE)|(0<<TXCIE) // Разрешил приём и прерывание по приёму
OUT UCSRB, R16
LDI R16, (0<<UCSZ2)|(1<<UCSZ1)|(1<<UCSZ2)|(0<<UMSEL) // Настроил на восемь бит
OUT UCSRC, R16
