Возникла проблема - необходимо передать поток байтов по шине UART на относительно большое растояние (около 50м) при наличии рядом расположенных сетевых проводов. Было принято решение использовать низкую скорость передачи в 300 бод/сек. При частоте кварца 4МГц для МК Мега8 в регистр UBRR необходимо занести число 835
гдето так проходит инициализация: init_uart:
ldi t0,low(832) ;скорость передачи 300 бод/сек
out UBRRL,t0
ldi t0,high(832)
out UBRRH,t0
ldi t0,(1<<RXEN)|(1<<TXEN); включение приема передачи
out UCSRB,t0
ldi t0,(1<<URSEL)|(3<<UCSZ0);формат 8n1
out UCSRC,t0
ret
Пробую симуляцию в Протеусе выясняется что регистр UBRRH равен 0 а скорость обмена определяется только регистром UBRRL
Пробую сделать симуляцию этой части программы в AVR Studio 4 - примерно тот-же эффект, только одновременно меняются данные в регистрах UBRRH и UCSRC
Не могу понять - это БОКа программ или я чего-то не понимаю. Кучу книг перечитал, но там все одно и тоже даже в даташитах.
Может кто чего подскажет!!!