14.12.2012, 21:21
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Zabrodov, есть еще одно место, где существует привязка - файл ITFMOD.MDF. В свойстах МК прописано: ITFMOD=PIC, т.е. соответствует этой строчке в MDF:
Код:
|
PIC : RSHI=20, RSLO=20,RWHI=20k,VUD=2,VTL=0.8,VHL=0.2,VTH=2.5,VHH =0.2,V+=VDD,V-=VSS,TRISE=10n,TFALL=10n |
а тут, как видите, тоже есть привязки: V+=VDD,V-=VSS.
А вообще, я изначально предупреждал в FAQ, что все эти "фокусы" с питанием МК не всегда работают, а у AVR таки и вообще выводы питания похоронены. И, опять подчеркиваю, что чем новее версия - тем больше гарантий, что на выводы питания "забит" многочлен. Поищите другие способы "обмануть", т.е. остановить модель МК, а то ведь после "визуализации" захочется еще и ток померять по шине питания МК, а там полный "фигвам".
|
|
|
Сказали "Спасибо" Halex07
|
|
|
14.12.2012, 21:39
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от homo_sapiens
|
Так ли ЭТО, потому что MPLAB упорно оповещает о некорректности.
|
Да так, так... Если Вы перешли на страницу 1, что сделано в коде двумя строчками выше, то в ней, начинающейся с 0х80, они и есть по адресам 0х05 и 0х06. А последняя заморочка с ворнингами - это 84-я строка: Ну, тут по-моему ясно, что авторский опус - "куда ставить-то?" (к/ф "Добро пожаловать, или посторонним вход воспрещен"). Через запятую должен быть "пункт назначения" или 0 - аккумулятор, или 1 - сам регистр. Смотрите аналогичные операнды в коде.
Ох, ну практически всю работу за Вас сделал, балую я Вас.
|
|
|
Сказали "Спасибо" Halex07
|
|
|
14.12.2012, 21:46
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от homo_sapiens
|
Я вычитал что фактически TRISA и TRISB находятся соответственно по адресам 0х85, и 0х86 Но в коде можно указывать их как 0х05 и 0х06 при исполнении кода все равно обращение будет верным.
|
Можно и так, но не нужно, в целях меньшей путаницы.
На самом деле, если заглянуть в даташит контроллера, на страницы Data Memory Organization и INSTRUCTION SET SUMMARY, то можно увидеть, что при обращении к регистрам, полный адрес любого регистра получается из двух битов (RP1 и RP0) регистра STATUS (они занимают место старших двух битов в полном адресе регистра) и 7 битов в команде. Происходит так потому, что для адреса регистра в коде самой команды выделено всего 7 бит. А возможных регистров то гораздо больше, чем 128.
В принципе, для "железа" запись адреса регистра 0x85 и 0x05 равнозначна. Однако, лучше не пренебрегать общепринятыми правилами и указывать именно movwf TRISA вместо movwf 0x05.
Исключением являются регистры, определенные в любом банке на одном и том же месте от начала банка. Это регистры типа STATUS, FSR, PCL
|
|
|
Сказали "Спасибо" Алекс Василич
|
|
|
14.12.2012, 21:55
|
|
Временная регистрация
Регистрация: 20.05.2010
Адрес: Н.Новгород
Сообщений: 68
Сказал спасибо: 28
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Да так, так... Если Вы перешли на страницу 1, что сделано в коде двумя строчками выше, то в ней, начинающейся с 0х80, они и есть по адресам 0х05 и 0х06. А последняя заморочка с ворнингами - это 84-я строка:Ну, тут по-моему ясно, что авторский опус - "куда ставить-то?" (к/ф "Добро пожаловать, или посторонним вход воспрещен"). Через запятую должен быть "пункт назначения" или 0 - аккумулятор, или 1 - сам регистр. Смотрите аналогичные операнды в коде.
Ох, ну практически всю работу за Вас сделал, балую я Вас.
|
Это от большого сочувствия. ведь сколько литературы перелопатил. А воедино собрать не мог. Все урывки какие то. А тут с помощью Вас многое на места встало.
|
|
|
|
14.12.2012, 22:17
|
|
Временная регистрация
Регистрация: 20.05.2010
Адрес: Н.Новгород
Сообщений: 68
Сказал спасибо: 28
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: Proteus общие вопросы
Нашел Это задержка перед выключением. вот скрин. значит и выше надо поставить анологично. T_OFF,1
|
|
|
|
14.12.2012, 23:02
|
|
Частый гость
Регистрация: 21.11.2012
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Halex07
|
Zabrodov, есть еще одно место, где существует привязка - файл ITFMOD.MDF.
|
Так глубоко лезть совсем не хочется, насколько я понимаю, изменения в ITFMOD.MDF повлияют вообще на все модели PICов. И кто его знает, чем оно потом может аукнуться.
Но мне таки очень непонятно и любопытно - почему у меня после визуализации пинов питания в свойствах PICа исчезла кнопка Hidden Pins? Ведь на Вашем скриншоте она есть! Это жжжж явно неспроста, и меня очень смущает.
Сообщение от Halex07
|
И, опять подчеркиваю, что чем новее версия - тем больше гарантий, что на выводы питания "забит" многочлен.
|
Зря они так, это явно отдаляет модели от их старших собратьев - реальных компонентов. Которые в живых схемах часто запитываются через ключи, блоки защиты и т.д.
Ну что ж, придется извращаться и обманывать Протеус. Хотя оно и напрягает.
|
|
|
|
14.12.2012, 23:26
|
|
Частый гость
Регистрация: 21.11.2012
Сообщений: 36
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от homo_sapiens
|
Вот хочу еще один конкретный вопрос задать. Я вычитал что фактически TRISA и TRISB находятся соответственно по адресам 0х85, и 0х86 Но в коде можно указывать их как 0х05 и 0х06 при исполнении кода все равно обращение будет верным. Так ли ЭТО, потому что MPLAB упорно оповещает о некорректности. Когда я меняю как приведено в скрине то он успокаивается. Но я не уверен в правильности.
|
Объясните мне - зачем Вы в своем проекте объявляете физические адреса служебных регистров?
Это же уже давным-давно Microchip сделал до Вас и для Вас!
Вместо всех Ваших строк более чем достаточно одной:
include‹p16f84.inc›
И всё - в файликах *.inc адреса всех служебных регистров каждого МК услужливо прописаны производителем.
Так что знать конкретные адреса Вам вообще без нужды, после подключения нужного inc-файла можете смело обращаться к любому служебному регистру и флагу.
|
|
|
|
15.12.2012, 09:49
|
|
Супер-модератор
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Zabrodov
|
Так глубоко лезть совсем не хочется, насколько я понимаю, изменения в ITFMOD.MDF повлияют вообще на все модели PICов.
|
Это если "нахрапом" переть. Я и не предлагал менять строчку PIC : ... А сделать ее дубль с другим именем не судьба? Например, обозвать MYPIC :. В этой строчке меняем (удаляем) что хочется, а в свойствах своей модели делаем привязку: ITFMOD=MYPIC вместо PIC. Если заглядывали в файл, то наверное обратили внимание, что там и так для PIC можно сделать два режима, второй для трехвольтового PIC3V3.
Сообщение от Zabrodov
|
Но мне таки очень непонятно и любопытно - почему у меня после визуализации пинов питания в свойствах PICа исчезла кнопка Hidden Pins?
|
.
Как то, я думал, - сами могли бы догадаться. Есть скрытые пины - есть кнопка, нет скрытых пинов - нет кнопки. Это уже интерфейс программы и она сама автоматом добавляет те кнопки, которые имеют не пустое значение. Так же ведут себя и некоторые другие кнопки, та же Help. Будет на предпоследней вкладке Make Device ссылка на раздел помощи - будет кнопка, оставите это поле пустым - не будет кнопки. Вы сделали ВСЕ скрытые пины видимыми, так откуда возьмется эта кнопка и что по ней должно вызываться???
Сообщение от Zabrodov
|
Объясните мне - зачем Вы в своем проекте объявляете физические адреса служебных регистров?
Это же уже давным-давно Microchip сделал до Вас и для Вас!
Вместо всех Ваших строк более чем достаточно одной:
include‹p16f84.inc›
|
Это у большинства начинающих дань моде прошлых лет и в частности "школе г-на Корабельникова". А еще, многие ленятся заглядывать в файлы *.INC - а что же там и как определено заранее? А зря - весьма полезная инфа. Ну а в качестве "ложки дегтя" TRISA и TRISB у самого Мелкочипа для 16F84 там прописаны как:
Цитата:
|
;-----Bank1------------------
OPTION_REG EQU H'0081'
TRISA EQU H'0085'
TRISB EQU H'0086'
EECON1 EQU H'0088'
EECON2 EQU H'0089'
|
Так что в этом случае все-равно придется их переопределять в своем коде, ну или править INC, что тоже не есть гуд.
Последний раз редактировалось Halex07; 15.12.2012 в 09:52.
|
|
|
Сказали "Спасибо" Halex07
|
|
|
15.12.2012, 18:33
|
|
Временная регистрация
Регистрация: 20.05.2010
Адрес: Н.Новгород
Сообщений: 68
Сказал спасибо: 28
Сказали Спасибо 7 раз(а) в 6 сообщении(ях)
|
Re: Proteus общие вопросы
Сообщение от Zabrodov
|
Объясните мне - зачем Вы в своем проекте объявляете физические адреса служебных регистров?
Это же уже давным-давно Microchip сделал до Вас и для Вас!
Вместо всех Ваших строк более чем достаточно одной:
include‹p16f84.inc›
И всё - в файликах *.inc адреса всех служебных регистров каждого МК услужливо прописаны производителем.
Так что знать конкретные адреса Вам вообще без нужды, после подключения нужного inc-файла можете смело обращаться к любому служебному регистру и флагу.
|
Объясняю я взял готовый код из журнала "Радио", а это моя вторая по счету поделка на пике. Вот и пришлось на ходу вникать. И только благодаря Halex Я во многом разобрался. Я еще раз благодарю всех кто хоть по крупице помог мне составить более менее ясную картину Конечно и не обошлось и без Корабельникова.
|
|
|
|
19.12.2012, 11:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,832
Сказал спасибо: 742
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
|
Re: Proteus общие вопросы
проблема с мегой88, в прерывании проверяется условие и должно выполниться действие. Условие - единица на одном из трех входов, единица есть действие не выполняется-не могу понять что не так.
Если условие PORTX.X==0 то действие будет выполнено,где ошибка ?
__________________
Да здравствует Разум,да сгинет Маразм!
Последний раз редактировалось E_C_C; 19.12.2012 в 12:08.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:46.
|
|