Сообщение от slava1957
|
Проектирую AVR AT90S4433
В описаниях на микросхему регистр захвата таймера/счетчика 1 ICR1 определен по адр.0x26.
При симмуляции в PROTEUS этот регистр определен по адр.0x24 Cоответственно нет доступа к ICR1.
Что делать?? Кто сталкивался с такой проблемой?
|
Проблему несоответствия адреса ICR1(регистр захвата тайм/сч 1) контроллера AVR AT90S4433 в PROTEUS решил.
Для программирования использую CodeVision.Изменил адрес регистра ICR1 в 90s4433.h
Было:
sfrb ICR1L=0x26;
sfrb ICR1H=0x27;
sfrw ICR1=0x26;
Стало:
sfrb ICR1L=0x24;
sfrb ICR1H=0x25;
sfrw ICR1=0x24;
Всё.
Механизм захвата таймера в PROTEUS работает.
Проверяй и отлаживай устройство в симмуляторе
По ходу работы обнаружил другие неточности PROTEUS !!!
1.Процедура чтения OCR1 регистра сравнения тайм/сч 1
Должно : чт.мл.байта - чт.ст.байта
В ISIS : этот порядок не важен.
2.Процедура чтения ICR1 регистра захвата тайм/сч 1
Должно : чт.мл.байта - чт.ст.байта
В ISIS : чт.мл.байта - чт.ст.байта, но байты переставлены
Когда будешь "прошивать" м/схему верни исходные адреса и измени порядок чтения регистров
Все проверял на PROTEUS ver 6.9 SP5
В VMLAB этих "ляпусов" нет, но сравнивать его с PROTEUS ....
P.S.
У ребяток из Labcenter Electronics по-видимому трудности с русским языком - не читают они avr123.nm.ru.
Там постоянно напоминается:
"..ищите в DataSheet (ДШ) регистры и устройства МК используемые и упомянутые в задаче,прочитайте о них подробней.Уясните роль каждого бита и регистра..."
ШУТКА