В качестве удара бубна для симуляции ШИМ рекомендуется включать TMR2 после помещения значения в регистр CPPRxL. На форуме каком то вычитал. Вот так вот получится:
Мысль, конечно интересная, НО ПОРОЖНЯК. Бубен дырявый оказался. Смотри разницу. У тебя, кстати, если развернуть правее тоже так будет. генерация ШИМ должна быть НЕПРЕРЫВНОЙ и периодически (по таблицам) изменяющейся. У Proteus-а явные провалы. УПС. Кстати, это не единственная дыра у сего девайса. Завтра-послезавтра локализую вторую. Выложу.
Собираюсь в Протеусе начертить эл-ую схему. Далее с его же помощью перевести данную схему в чертеж печатной платы, дабы в дальнейшем ее изготовить. Вопрос встает в следующем: Протеус прячет некоторые ноги у МК, а именно питание и землю. Как мне их показать ? Т.к. эти ножки Я планирую сначала связать со стабилизатором напр-ия а уж его с напряжением питания.
Правой клавишей на модели и выбрать пункт меню Decompose. После этого появятся все скрытые пины, и на каждом скрытом определяешь какое питание на него идет
D'Ark Trouyan писал(а):эти ножки Я планирую сначала связать со стабилизатором напр-ия а уж его с напряжением питания.
Только не надо их симулировать - в свойствах этих компонентов укажите "исключить из симуляции", а если плату не будете разводить в Протеус то вообще не помещайте их на схему.
AVR ты у нас спец по протеусу, вразуми. Решил посидеть вечером, покодить. Пишу программу для PIC контроллера, программа наитупейшая, принимает символ с компа, сравнивает, если годится посылает ответ.
while(1==1) { for(index=0; index>1000; index++); if (index==1000) TXREG=RCREG+10; } }
Собираю устройство в протезе. Не фурычит ни рожна. Деталю в программе мигание светодиода и постоянную посылку символа в комп. Работает (значит не совсем еще дурак). Ставлю прием, не работает. Программу переписывал и так и эдак. Все по даташиту, перепроверял несколько раз каждый шаг. Закоментировал все свое и вставил чужой код из примера - http://www.pcports.ru/articles/pic8.php. Работает. Но там сделано без прерывания, а мне нужно с прерыванием... Короче я так мучался наверное часа два, а потом просто тупо наткнулся на такие чудеса. У микрочиповских контроллеров в регистре INTCON есть бит PEIE - разрешение прерываний от периферийных модулей. Так вот протеус как то странно на него реагирует. Если PEIE=0 программа в протеусе функционирует стабильно. Но не работает блок
Если PEIE=1 прерывания работают, но все что стоит после while(1==1) выполняться отказывается. При пошаговой отладке курсор сразу на void interrupt main_inter(void) перескакивает игнорируя
while(1==1) { for(index=0; index>1000; index++); if (index==1000) TXREG=RCREG+10; }
Не могу понять в чем фигня, толи я не так с протеусом общаюсь, толи это очередной глюк протеза. З.Ы. В железе все пашет. Прогонял дебагером через PICKit2 все нормально и цикл и прерывание, все срабатывает.
Есть 2 варианта: 1) Протеус как идеальное железо не воспринимает кривую программу, причем на реальном железе может работать 2) это глюк протеуса - каких много
Anubis писал(а):AVR ты у нас спец по протеусу, вразуми.
Спец по протеусу это Halex07 на казусе - такой документище по протеусу отгрохал, он как раз на пик специаизируется.
Ты прицепи тут проект - я посмотрю. Я ведь пиками не занимаюсь и понять просто по коду что не так мне трудно. На модели проще.
Методика такова -в протеус или в MPLAB ( там ведь тоже есть симулятор ) находишь то место в проге которое работает не так как ты ожидаешь и дальше сравниваешь работу двух симуляторов и железа и внимательно читаетшь даташит - соотв раздел.
Этот файл можно рассматривать как последовательность с нулевого адреса, чисел $01 $33 $06 $E6 ? Если да, похоже или лыжи не едут или что-то с форматом...
как в протеусе сделать Power два источника один 5 другой 12в. в конфигурации питании в падающем меню design меняешь он для всех power меняется а мне надо и то и то?
просто ставишь терминал пауэр на схему и прав кн мышки щелк, в свойствах указываешь его напряжние. а можно батарейку на схему поставить. www.proteus123.narod.ru