Раздел: Документация
0 ... 157 158 159 160 161 162 163 ... 195 Пример на ассемблере ; Записать 2 в UBRRH ldi г16,0х02 out UBRRH, rl6 ; Установить биты USBS и UCSZ1 регистра UCSRC ldi rl6(l«URSEL) I (1«USBS) I (1«UCSZ1) out UCSRC,rl6 Пример на Си /* Записать 2 в UBRRH */ UBRRH = 0x02; /* Установить биты USBS и UCSZ1 регистра UCSRC */ UCSRC = (1«URSEL) I (1«USBS) I (1«UCSZ1) ; Для выбора регистра при чтении используется временная последовательность. При первом обращении по указанным адресам возвращается значение регистра UBRRH (UBRRH/7). При повторном обращении по этим адресам в следующем такте возвращается значение регистра UCSRC (UCSRajC), как показано в приведенных ниже примерах. Прерывания при выполнении этой последовательности команд должны быть запрещены. Пример на ассемблере USART ReadUCSRC: ; Прочитать регистр UCSRC in г16,UBRRH in rl6,UCSRC ret; Значение регистра UCSRC возвращается ; в регистре г16 Пример на Си unsigned char USART ReadUCSRC(void) { unsigned char ucsrc; ucsrc = UBRRH; ucsrc = UCSRC; return ucsrc; } При работе в асинхронном режиме скорость обмена определяется не только содержимым регистра UBRR, но и состоянием бита U2X (U2X/I) регистра UCSRA (UCSR/*A). Если этот бит установлен в 1, коэффициент деления предделителя уменьшается в два раза, а скорость обмена соответственно удваивается. При работе в синхронном режиме этот бит должен быть сброшен. Итак, скорость обмена определяется следующим образом: •асинхронный режим (обычный, \J2Xn = 0) BAUD = -—- 16-(UBRR+ 1) •асинхронный режим (ускоренный, ШХп = 1) BAUD = -—- 8(UBRR+1) •синхронный режим ведущего BAUD = -—- , 2-(UBRR+l) где BAUD — скорость передачи, бит/с; /ск — тактовая частота микроконтроллера; UBRR — содержимое регистра контроллера скорости передачи (0...4095). В качестве примера в Табл. 13.10 приведены значения регистра UBRR, позволяющие получить стандартные для асинхронного режима скорости передачи при использовании различных резонаторов, а также величины ошибок получаемых значений относительно стандартных. Значения регистра UBRR, при которых получаемая скорость передачи отличается от требуемого значения меньше чем на 0.5%, выделены в таблице жирным шрифтом. Значения, дающие ббльшую ошибку, также можно использовать, однако следует иметь в виду, что при этом снижается помехозащищенность линии передачи. При работе в синхронном режиме в качестве ведомого скорость приема и передачи определяется частотой сигнала, поступающего на вывод ХСК (ХСКя). Частота этого сигнала должна удовлетворять условию /хек </osc/4 • Это ограничение связано с тем, что сигнал с вывода ХСК (ХСКя) сначала синхронизируется с тактовой частотой микроконтроллера, а затем проходит через детектор фронтов. Задержка сигнала при прохождении этих узлов равна двум тактам.
1 и э d X 5 о 0 ... 157 158 159 160 161 162 163 ... 195
|