Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.06.2006, 10:14
|
|
Вид на жительство
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Proteus и время.
Написал программу часов на асме в MPLAB с PIC16F84 и кварцем 32768 Гц. Отладил, StopWatch показал - за 12 часов отставание 0,005 сек. Ок.
Собираю схему в Proteus, загоняю прошивку - ого!
По показаниям часов Proteus показания часов отстают в два раза... Удивительно! И непонятно. Ладно, меняю коэффициент деления прескалера, проверяю дальше.
Вроде попал, но точность хуже - 0,2 сек в час... 8O
Теперь решил сверить с реальным временем - по ручным часам. И тут ещё одна плюха - каждую минуту часы в Proteus отстают на 15 сек.
Можно подумать на тормознутый комп, но Пень 2 ГГц при 512 МБ памяти для Proteus 6.7 SP3 - выше крыши...
А как же понимать заявления, что все, что работает в Proteus, работает в железе?
И что мне делать? Подгонять константы таймера, добиваясь точности часов в по часам Proteus или забить на него, и разбираться с точностью в железе?
|
|
|
|
18.06.2006, 11:46
|
|
Частый гость
Регистрация: 14.06.2006
Сообщений: 28
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Привет! Работая с Протнеусом и проверяя уже рабочую в железе схему столкнулся с похожей проблемой. Оказалось, что все дело в конфигурации проца - я привык ее задавать в программе ICProg, а в исходнике не писать, на чем и 'погорел' - видимо если __CONFIG не пишем в ASM-кий файл, то он по умолчанию подставляет свои данные...Попробуй.
|
|
|
|
18.06.2006, 12:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
в ПРОТЕУС частота тактирования зависит ТОЛЬКО от того что написано в свойствах МК на схеме в ПРОТЕУСЕ !
====
Конечно это не верно ожидать что устройство работающее в ПРОТЕУС обязательно должно работать в железе - просто вероятность этого очень высока.
Иногда бывает и наоборот - устройство работает а ПРОТЕУС говорит НЕТ. Такой случай обсуждается сейчас на форуме ПРОТЕУСа с графическим LCD.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
18.06.2006, 13:46
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Уважаемый товарищ
ZELANEZ
Убедительно прошу , если вы хотите решить свою
проблему , сейчас и впредь выкладывайте с запросом о
помощи свой проект. Иначе я не в состоянии помочь ВАМ . Использовать Ваш проект в комерческих целях никто не собирается.
|
|
|
|
18.06.2006, 14:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
Если в компиляторе используется задание частоты 11,0592 МГц и 19200бит/с работа Уарт - то в свойствах кристалла в Протеусе тоже нужно выставлять 11,0592 МГц. Тогда эмуляция работы с реальным устройством проходит без проблем (через элемент COMPIM).
Наверное Протеус заточен на ту частоту микроконтроллера, которую по умолчанию задано в свойствах.
Например АТмега8 там 1МГц.
Если задать другую частоту, то эмуляция будет не совсем точной по времени (загрузка процессора ПК более 100%). Для СОМ2 с реальным устройством у меня работает без ошибок (допустимые погрешности).
Для часов эта неточность очень ощутима и приводит к нецелесообразности такой отладки. Решить это можно только воплотив в железе.
|
|
|
|
18.06.2006, 14:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
И еще.
Я собирал и запускал в Протеусе когдато воплощеные в железе схемы. Для прошивки микроконтроллера использовал только HEX-файлы и правильно выставлял конфигурацию (частоту).
Все работало.
Для меня было удивительным, как точно эмулируется логика работы микроконтроллера.
Уж об реальном алгоритме может знать только компилятор. А используя HEX-файлы мы даем только команды элементам процессора молотить биты и байты, так как их перевел в машинные коды компилятор.
Сильная вещь этот Протеус.
А процессор ПК нужен для такой работы чем мощнее, тем лучше.
Мой на 1,7МГц уже слабоват....
|
|
|
|
19.06.2006, 09:39
|
|
Вид на жительство
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
А можно я отвечу всем в одном посте? Не хочется туда-сюда напрасно байты гонять...
Итак, по поряку поступления:
1 lom771, Я упомянул, что отладил проект в MPLAB, т.е. конфигурация и частота кварца задана правильно.
Можно подумать, что Протеус понимает конфигурацию по-своему? Убедился на собственном опыте, что кодить надо, придерживаясь строгих правил, одно из которых - указание правильной конфигурации МК до начала написания программы. Стараюсь придерживаться, ошибок меньше.
2 avr123-nm-ru. Да, это так. Я менял частоту МК, чтобы понять, а правильно ли Протеус понимает, что ему говорят. Ну, скажем, чтобы проверить работу часов в диапазоне часов и десятков часов, в реальном времени это нереально (пардон за тавтологию) . Устанавливаю частоту МК в 10 раз выше - и вперед...
Короче, за правильность установки частоты МК я уверен. MPLAB подтверждает это.
3 Тов. dosikus, Я очень ценю ваше время и не хотел бы грузить вас своими проблемами. Тем более, что по проекту вопросов нет, есть вопрос по Протеусу. Смысл вопроса в том, что сталкивался ли кто с такой вещью и как на неё реагировать? Если вам интересны подробности, вы легко сами можете написать код для МК для выдачи секундных импульсов+ счётчик. Это всего пара десятков строк и полчаса времени. Разбираться в моём проекте просто нет смысла из-за гораздо большей потери времени.
Ещё раз подчеркну основной момент, что отлаженный в MPLAB проект неадекватно работает в Протеусе.
4 lsa, интересное предложение, проверить старые проекты в Протеус, загоняя НЕХ-файл. Могут появиться идеи по их модернизации... Но ведь Протеусу ещё и файл-источник нужен? Или нет?
Насчет компилятора, так на Асме это не так актуально, как на ... Си (?)..
|
|
|
|
19.06.2006, 22:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.06.2004
Адрес: Харьков
Сообщений: 1,488
Сказал спасибо: 3,207
Сказали Спасибо 3,010 раз(а) в 686 сообщении(ях)
|
Сообщение от zelanez
|
4 lsa, интересное предложение, проверить старые проекты в Протеус, загоняя НЕХ-файл. Могут появиться идеи по их модернизации... Но ведь Протеусу ещё и файл-источник нужен? Или нет?
Насчет компилятора, так на Асме это не так актуально, как на ... Си (?)..
|
В том то и дело, что Протеус эмулирует работу кристалла на основе объектных кодов (только из HEX-файла и без самого источника)!
А насчет алгоритма, то и на ассемблере и на С он может быть очень запутан для понимания в лоб.
У меня проект создавался с нескольких кусков.
Логически понять уже что к чему невозможно.
Об никакой оптимальности и компактности нет и речи (грязное программирование).
Но оно работает!
Причем и в реальности и в Протеусе.
|
|
|
|
19.06.2006, 23:25
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Во первых все проекты , свои или чужие
я проверял не только в МПЛАБ И ПРОТЕУСЕ
, но и естественно в живую.
Во вторых первое что я начал делать, были
часы на 16f84 работающие на частоте 32768 гц
без прерываний.
Переделанные с 16c54. Работающие до сих пор
(уже 8 лет) единственное неудобство --
моргание .
В третьих, все проекты часов (или использующих времянной движок) сделанных мной , в ПРОТЕУСЕ
работают идеально( ну может быть почти идеально).
Привожу ниже пример( могу еще кучу.
Так что я не зря ВАС прошу выложить проект.....
-- Прилагается рисунок: --
|
|
|
|
20.06.2006, 00:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от zelanez
|
интересное предложение, проверить старые проекты в Протеус, загоняя НЕХ-файл. Могут появиться идеи по их модернизации...
Но ведь Протеусу ещё и файл-источник нужен? Или нет?
|
нет.
ПРОТЕУС и VMLAB могут работать и с одним .hex
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:05.
|
|