Все правильно, так и не будет работать
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено AVR 11 октября 2004 г. 12:24
В ответ на: помогите пожалуйста с таймером для AVR отправлено student_andrew 11 октября 2004 г. 10:54

Если к i/o регистрам (таймерам, портам и т.д.) обращаться как к ячейкам ОЗУ, то к их i/o адресам нужно прибавлять 0x20 - см. даташит стр. 15, значения в скобках. В файле 2313def.inc адреса TCNT0 и TCCR0 определены как 0x32 и 0x33, что и нужно при обращении к ним командами IN/OUT, а для обращений к ним командами STS/LDS их адреса должны быть на 0x20 больше.

Работать будет так:


ldi XL, 0x55
sts TCNT0+0x20, XL ; загрузка задержки
ldi XL,0x05
sts TCCR0+0x20, XL ; запуск CNT0 c коэфф. деления 1024

Или так:


ldi XL, 0x55
out TCNT0, XL ; загрузка задержки
ldi XL,0x05
out TCCR0, XL ; запуск CNT0 c коэфф. деления 1024

Вот цитата из даташита (стр. 16):


When using the I/O specific commands IN and OUT, the I/O addresses $00 - $3F must be used. When addressing I/O Registers as SRAM, $20 must be added to this address. All I/O Register addresses throughout this document are shown with the SRAM address in parentheses.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru