Несоответствие регистров программирования ATmega16

Я программирую ATmega16 и выбрал этот контроллер в диспетчере устройств (atmel studio 6.2), но регистры не совпадают с регистрами в таблице данных для ATmega16. Я использую ICE 3 и пробовал с симулятором, но результат тот же. Регистр UCSRC отличается от какого-то другого контроллера и не может в него писать, хотя я поставил MSB на one.


person Milos    schedule 08.06.2015    source источник
comment
У вас проблема с UART-связью ATMEGA16? Пожалуйста, разработайте свой вопрос. Поместите код, чтобы понять, что вы пробовали.   -  person Samurai Jack    schedule 08.06.2015


Ответы (1)


согласно таблице данных ATMEGA16, не требуется устанавливать MSB из UCSRC, так как его начальное значение равно 1. При работе с UART необходимо убедиться, что

  1. Вы устанавливаете правильные UBRRL и UBRRH в соответствии с часами контроллера, используя следующую формулу:

    FOSC/16/BAUD-1

  2. Включить RXEN и TXEN из UCSRB

  3. Установите правильные биты в UCSRCв соответствии с вашими требованиями stop bit и parity bit

Пожалуйста, обратитесь к следующему изображению: введите описание изображения здесь

person Samurai Jack    schedule 08.06.2015
comment
@Milos: Добро пожаловать. Если приведенный выше ответ сработал для вас, отметьте этот ответ как принятый, чтобы он был полезен другим. - person Samurai Jack; 09.06.2015