roboforum.ru

Технический форум по робототехнике.

 

Proteus - вопросы и ответы

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Proteus - вопросы и ответы

Сообщение Int_13h » 19 фев 2010, 12:44

В качестве удара бубна для симуляции ШИМ рекомендуется включать TMR2 после помещения значения в регистр CPPRxL. На форуме каком то вычитал.
Вот так вот получится:
Код: Выделить всёРазвернуть
 loc_CODE_2E                            
   INCF    byte_DATA_20, f
   MOVFW   byte_DATA_20
   ;BSF    T2CON, TMR2ON
   BCF     PIR1, TMR2IF
   ANDLW   0x0F
   CALL    loc_CODE_1C
   MOVWF   CCPR2L
   BSF   T2CON, TMR2ON
   MOVFW   byte_DATA_20
   ANDLW   0x0F
   CALL    loc_CODE_A
   MOVWF   CCPR1L
   BSF   T2CON, TMR2ON
   RETFIE

PWM_PIC.gif
Int_13h
 
Сообщения: 18
Зарегистрирован: 18 фев 2010, 12:51
Откуда: Irkutsk
прог. языки: двоичный код

Re: Proteus - вопросы и ответы

Сообщение Sergey_B » 19 фев 2010, 23:18

Мысль, конечно интересная,
НО ПОРОЖНЯК.
Бубен дырявый оказался.
Смотри разницу. У тебя, кстати, если развернуть правее тоже так будет.
генерация ШИМ должна быть НЕПРЕРЫВНОЙ и периодически (по таблицам) изменяющейся.
У Proteus-а явные провалы. УПС.
Кстати, это не единственная дыра у сего девайса.
Завтра-послезавтра локализую вторую. Выложу.
Вложения
OSC2.jpg
Sergey_B
 
Сообщения: 31
Зарегистрирован: 15 фев 2010, 23:53
Откуда: Новосибирск

Re: Proteus - вопросы и ответы

Сообщение D'Ark Trouyan » 28 май 2010, 20:22

Собираюсь в Протеусе начертить эл-ую схему. Далее с его же помощью перевести данную схему в чертеж печатной платы, дабы в дальнейшем ее изготовить.
Вопрос встает в следующем:
Протеус прячет некоторые ноги у МК, а именно питание и землю. Как мне их показать ? Т.к. эти ножки Я планирую сначала связать со стабилизатором напр-ия а уж его с напряжением питания.
vivere militare est
Аватара пользователя
D'Ark Trouyan
 
Сообщения: 76
Зарегистрирован: 21 сен 2006, 22:42
Откуда: М.О.

Re: Proteus - вопросы и ответы

Сообщение galex1981 » 28 май 2010, 21:40

Правой клавишей на модели и выбрать пункт меню Decompose. После этого появятся все скрытые пины, и на каждом скрытом определяешь какое питание на него идет
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Proteus - вопросы и ответы

Сообщение avr123.nm.ru » 28 май 2010, 22:46

D'Ark Trouyan писал(а):эти ножки Я планирую сначала связать со стабилизатором напр-ия а уж его с напряжением питания.
Только не надо их симулировать - в свойствах этих компонентов укажите "исключить из симуляции", а если плату не будете разводить в Протеус то вообще не помещайте их на схему.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Proteus - вопросы и ответы

Сообщение Anubis » 22 июн 2010, 01:24

AVR ты у нас спец по протеусу, вразуми. Решил посидеть вечером, покодить. Пишу программу для PIC контроллера, программа наитупейшая, принимает символ с компа, сравнивает, если годится посылает ответ.
Код: Выделить всёРазвернуть
#include <pic.h>      // Директива подключения доп.библиотеки
__CONFIG(HS & WDTDIS);   // Макрос настройки кристала

int index=0;

void interrupt main_inter(void)
{
   if(RCIF)
   {
      PORTD=RCREG;
      TXREG=RCREG;
      RCIF=0;
   }   
}   

void main (void)
{
   TRISA=0b00000000;
   TRISB=0b00000000;
   TRISC=0b11000000;
   TRISD=0b00000000;
   PORTA=0b00000000;
   PORTB=0b00000000;
   PORTC=0b00000000;
   PORTD=0b00000000;
   TXSTA=0b00000000;
      CSRC=1;
      TXEN=1;
      BRGH=1;
      TRMT=1;
   RCSTA=0b00000000;
      SPEN=1;
      CREN=1;
   SPBRG=129;
   SSPSTAT=0b00000000;
      SMP=1;
   SSPCON=0b00000000;
      SSPEN=1;
   INTCON=0b00000000;
      GIE=1;
      PEIE=1;
      T0IE=1;
      INTE=1;
   PIE1=0b00000000;
      ADIE=1;
      RCIE=1;
      TXIE=1;
      SSPIE=1;
   
   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 программа в протеусе функционирует стабильно.
Но не работает блок
Код: Выделить всёРазвернуть
void interrupt main_inter(void)
{
   if(RCIF)
   {
      PORTD=RCREG;
      TXREG=RCREG;
      RCIF=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 все нормально и цикл и прерывание, все срабатывает.
Блин, никак не могу придумать подпись!
Аватара пользователя
Anubis
 
Сообщения: 268
Зарегистрирован: 03 дек 2008, 23:24
Откуда: Тамбов
Skype: anubis_kesh
прог. языки: Delphi, С++, PHP, HTML
ФИО: Гребенников Роман

Re: Proteus - вопросы и ответы

Сообщение galex1981 » 22 июн 2010, 01:37

Есть 2 варианта:
1) Протеус как идеальное железо не воспринимает кривую программу, причем на реальном железе может работать
2) это глюк протеуса - каких много
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4360
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Proteus - вопросы и ответы

Сообщение Anubis » 22 июн 2010, 01:43

Да там и кривиться то нечему...
Блин, никак не могу придумать подпись!
Аватара пользователя
Anubis
 
Сообщения: 268
Зарегистрирован: 03 дек 2008, 23:24
Откуда: Тамбов
Skype: anubis_kesh
прог. языки: Delphi, С++, PHP, HTML
ФИО: Гребенников Роман

Re: Proteus - вопросы и ответы

Сообщение avr123.nm.ru » 22 июн 2010, 11:09

Anubis писал(а):AVR ты у нас спец по протеусу, вразуми.

Спец по протеусу это Halex07 на казусе - такой документище по протеусу отгрохал, он как раз на пик специаизируется.

Ты прицепи тут проект - я посмотрю. Я ведь пиками не занимаюсь и понять просто по коду что не так мне трудно. На модели проще.

Методика такова -в протеус или в MPLAB ( там ведь тоже есть симулятор ) находишь то место в проге которое работает не так как ты ожидаешь и дальше сравниваешь работу двух симуляторов и железа и внимательно читаетшь даташит - соотв раздел.

Русские переводы документации для PIC на страничке 9 курса выложены - http://proavr.narod.ru/09.htm

Кстати MPLAB очень "прямая" прога, IDE.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Proteus - вопросы и ответы

Сообщение Victorovych » 25 авг 2010, 15:41

Помогите кто владеет, нужен формат данных bin-файла для заливки в EEPROM аврки в протеусе
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

Re: Proteus - вопросы и ответы

Сообщение Michael_K » 25 авг 2010, 15:48

bin-файл - он как правило "без формата".
То есть просто последовательность байтов с первого адреса до последнего.
Аватара пользователя
Michael_K
 
Сообщения: 6034
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Proteus - вопросы и ответы

Сообщение Victorovych » 25 авг 2010, 16:39

Этот файл можно рассматривать как последовательность с нулевого адреса, чисел $01 $33 $06 $E6 ? Если да, похоже или лыжи не едут или что-то с форматом...
Вложения
1111.rar
(64 байт) Скачиваний: 0
Аватара пользователя
Victorovych
 
Сообщения: 491
Зарегистрирован: 20 сен 2007, 11:44
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич

Re: Proteus - вопросы и ответы

Сообщение Michael_K » 25 авг 2010, 17:14

По-моему, да. Просто 4 байта.
Аватара пользователя
Michael_K
 
Сообщения: 6034
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Proteus - вопросы и ответы

Сообщение TRV » 22 мар 2015, 03:12

как в протеусе сделать Power два источника один 5 другой 12в. в конфигурации питании в падающем меню design меняешь он для всех power меняется а мне надо и то и то?
TRV
 
Сообщения: 17
Зарегистрирован: 20 июн 2014, 09:34

Re: Proteus - вопросы и ответы

Сообщение avr123.nm.ru » 10 май 2015, 09:33

просто ставишь терминал пауэр на схему и прав кн мышки щелк, в свойствах указываешь его напряжние. а можно батарейку на схему поставить.
www.proteus123.narod.ru :lol:
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Mail.ru counter