Отговори на тема  [ 6 мнения ] 
MPLAB-SIM 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Ное 25, 2008 4:44 pm
Мнения: 31
Мнение MPLAB-SIM
Здр.
В момента си пиша дипломната работа която е пряко свързана с програмиране на един микроконтролер (PIC16C74), та изтеглих си аз MPLAB започнах да пиша и стигнах до един момент в който осъзнах че само с писане няма да я бъде, трябва и симулация. Порових се в интернет и разбрах, че ако имам нужната екипировка мога направо да тествам програмата върху чипа, или да използвам вградения симулатор в MPLAB, а именно MPLAB-SIM. До тук добре поразгледах го тоя симулатор цъкнах навсякъде що има да се цъка по менюта и т.н. и най-накрая реших да му прегледам help-a. Пуснах симулацията, имаше доста грешки разбира се изчистих ги и стигнах до момента в който ми се налага да правя АЦ преобразуване. Проклетия симулатор спира и зацикля когато тръгне да пробверява дали GO/DONE битът е 0 и до там. Предполагам че в симулатора няма никакъв проблем работи си перфектно, проблема е там че не може да се симулира напражение на който и да е от изводите и просто не се извършва преобразуване.

Въпросът ми е следния има ли някакъв начин да го накарам тоя MPLAB да подкара преобразуването софтуърно?

Благодаря предварително

Прилагам част от кода да е по-нагледно:

Код:
   BSF   STATUS, RP0      
   CLRF   ADCON1         
   BSF   PIE1,    ADIE      
   BCF   STATUS, RP0      
   MOVLW   0X83         
   MOVWF   ADCON0         
   BCF   PIR1,   ADIF      
   BSF   INTCON,   PEIE      
   BSF   INTCON,   GIE      
   NOP            
   NOP            
   NOP            
   NOP            
   BSF   ADCON0,   GO
   SLEEP
   BTFSC   ADCON0,   GO (симулацията зацикля на този ред)
   GOTO   PRSRX
   GOTO   SAVERES   
SAVERES:


Последна промяна iorgov на Чет Май 28, 2009 10:02 pm, променена общо 1 път



Чет Май 28, 2009 9:57 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение 
Дръпни си Proteus :idea:
Въпреки , че симулациите на схеми си е като виртуалния секс ,ама важното е кефа да е пълен :)


Чет Май 28, 2009 10:00 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
На реалния АЦП му трябват 25 такта за да пусне флага. На някои контролери симулатора изчаква коректно тези тактове, при други АЦП-то не се симулира коректно. Виж също SLEEP-a да не бърка нещо. Реална стойност(напрежение) може да се вкара например ръчно директно в регистрите. Може и автоматично но е голяма врътня и не е удобно.


Чет Май 28, 2009 10:36 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Съб Дек 06, 2008 9:22 am
Мнения: 119
Местоположение: Пловдив
Мнение 
Не можеш да накараш да симулира преобразуване от АЦП със симулатора в МПЛАБ.Ако искаш да провериш спрямо резултата дали ще извъши
конкретно действие,заместваш преобразуването с конкретен резултат и гледаш дали прави това което си си наумил.
MPLAB-SIM не може да симулира външни въздействия върху контролера.Ако правиш такава симулация просто заменяш въздействието с готов резултат
за да проследиш алгоритъма които си създал.
Така като ти гледам кода това прилича на инициализация.

BSF ADCON0, GO
SLEEP
BTFSC ADCON0, GO Мога ли да попитам за какво ти е този SLEEP точно на това място,конфигурираш прекъсвания пускаш АЦП и се
мъчиш да SLEEP-ваш контролера според мен безмислено защото преобразуванието на АЦП -то е около 4uS.


Пет Май 29, 2009 7:20 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Вто Ное 25, 2008 4:44 pm
Мнения: 31
Мнение 
така

първо искам да благодаря на valioman за това, че ми каза за Proteus (преди това не бях чувал за него) БЛАГОДАРЯ !! :) :prayer:

второ благодаря за отговорите

успях да си реша проблема с АЦП ( :supz: ) - забраних всички прекъсвания с изключение на ADIF. не поставям контролера в SLEEP, a проверявам с прост цикъл дали GO/DONE битът се е нулирал и след това си вземам резултата и продължавам напред.

сега ми остава да реша и другите 3/4 от задачата :)


Пет Май 29, 2009 7:27 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Съб Дек 06, 2008 9:22 am
Мнения: 119
Местоположение: Пловдив
Мнение 
BSF ADCON0, GO
BTFSC ADCON0, GO
GOTO $-1

Ето така е по-добре според мен да си чакаш разултата от АЦП.Без прекъсвания.


Съб Май 30, 2009 7:16 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни