Pic simulator ide выдаёт не правельный результат - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: brown 
Форум Picbasic.ru » Программирование МК » Pic SimulatorIDE » Pic simulator ide выдаёт не правельный результат
Pic simulator ide выдаёт не правельный результат
--AndreY-- Дата: Вт, 22.06.2010, 22:49  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 22.06.2010

Статус: Offline

Подскажите пожалуйста: мной была написана первая в жизни программа на pic basicpro. Писалось всё это дело в Microcodestudio потом через присоеденнёный компилятор (pic basicpro) было переведено в HEX файл. При попытке открыть программу через Pic simulator ide результат не тот который ожидал. В чём может быть дело и где искать косяки.
Code
'****************************************************************
'*  Name    : Podsos_avto.pbp                    *
'*  Author  : Panfiorov A.                    *
'*  Notice  :                    *
'*          :                    *
'*  Date    : 07.06.2010                    *
'*  Version : 1.0                    *
'*  Notes   :                    *
'*          :                    *
'****************************************************************
'-----------------Описание программы-----------------------------
'RA2 Подключение потенциометра
'RB6 Светодиод индикации режима работы
'RB5 Сервомотор
'RB4 Светодиод уровня 5
'RB3 Светодиод уровня 4
'RB2 Светодиод уровня 3
'RB1 Светодиод уровня 2
'RB0 Светодиод уровня 1
'RC4 Светодиод уровня 10
'RC3 Светодиод уровня 9
'RC2 Светодиод уровня 8
'RC1 Светодиод уровня 7
'RC0 Светодиод уровня 6

'-----------------Определение констант---------------------------
Define ADC_BITS8    'Задать число разрядов в результате АЦП
Define ADC_CLOCK 3  'Выбор источника тактового сигнала (3=RC)
Define ADC_SAMPLEUS 50  'Задать время преобразования в микросекундах

'-----------------Переменные-------------------------------------
b0 var byte
b1 var byte
b2 var byte
b3 var byte
b4 var byte

'----------------Процедура инициализации-------------------------
PortB=$00   'Все выходы перед началом сбросить в 0
TrisB=%00000000 'Все выводы порта В сделать выходами
PortC=$00   'Все выходы перед началом сбросить в 0
TrisC=%00000000 'Все выводы порта C сделать выходами
b4=0
'----------------Основная программа------------------------------
TRISA=%11111111 'Сделать все выводы порта А входами
ADCON1=%00000010    'Сделать выводы порта А аналоговыми входами

PortB=%01000001 'Зажечь индикаторный светодиод POWER и показать что прибор работает зажигать и другие светодиоды
PortC=%00000000
nap 4
PortB=%01000011
PortC=%00000000
nap 4
PortB=%01000111
PortC=%00000000
nap 4
PortB=%01001111
PortC=%00000000
nap 4
PortB=%01011111
PortC=%00000000
nap 4
PortB=%01011111
PortC=%00000001
nap 4
PortB=%01011111
PortC=%00000011
nap 4
PortB=%01011111
PortC=%00000111
nap 4
PortB=%01011111
PortC=%00001111
nap 4
PortB=%01011111
PortC=%00011111
nap 6
PortB=%01000000
PortC=%00000000

prog2:
b2=0
'----------------Цикл измерения и сложения 4-ёх температур-------
for b0=1 to 4
ADCIN 2,b1      'Преобразовать напряжение в канале 2 и поместить значение в b1
b2=b2+b1        'Сложить четыре раза b1
nap 5           'Задержка в 0.576сек в спящем режиме
next

b3=100+(b2*10)/104   'Усреднение трёх температур

if b3>199 OR b3<101 then goto prog3   'Если температура превысила нужный интервал показать это

if b4=1 AND b3>190 then goto ind     'Чтобы зря не гонять сервопривод если температура
'высокая перейти на показание светодиодов

'----------------Цикл работы сервомотора-----------------------------
for b0=1 to 100
pulsout 5,b3
pause 20
b4=0
next
'----------------Показатель уровня на 5-светодиодах------------------
ind:
if b3>110 then goto ind2
PortB=%01000001
PortC=%00000000
goto prog

ind2:
if b3>120 then goto ind3
PortB=%01000011
PortC=%00000000
goto prog

ind3:
if b3>130 then goto ind4
PortB=%01000111
PortC=%00000000
goto prog

ind4:
if b3>140 then goto ind5
PortB=%01001111
PortC=%00000000
goto prog

ind5:
if b3>150 then goto ind6
PortB=%01011111
PortC=%00000000
goto prog

ind6:
if b3>160 then goto ind7
PortB=%01011111
PortC=%00000001
goto prog

ind7:
if b3>170 then goto ind8
PortB=%01011111
PortC=%00000011
goto prog

ind8:
if b3>180 then goto ind9
PortB=%01011111
PortC=%00000111
goto prog

ind9:
if b3>190 then goto ind10
PortB=%01011111
PortC=%00001111
goto prog

ind10:
PortB=%01011111
PortC=%00011111
b4=1

'----------------Переход контроллера в спящий режим для отработки результата------------------
prog:       'Заснуть на 2.304сек для экономии
nap 7
goto prog2

'----------------Минипрограмма показывающая неправельную работу контроллера------------------
prog3:      'Миганием светодиодов показать что температура вышла за пределы
for b0=1 to 5
PortB=%01011111
PortC=%00011111
nap 6
PortB=%01000000
PortC=%00000000
nap 6
next
goto prog2

end
ЯНДЕКС Дата: 22.06.2010
brown Дата: Чт, 24.06.2010, 22:31  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Не навязываю, но может обратить внимание на Протеус.

Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
retas Дата: Чт, 24.06.2010, 22:50  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Интересная попытка, только как в Pic simulator ide можно всунуть HEX?
Еслиб попытаться скормить ему асм, но и то наверное не получится.
Пожалуй спасение только в Протеусе.


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
--AndreY-- Дата: Пн, 28.06.2010, 07:31  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Новенький
Сообщений: 6
Репутация: 0   ±
Замечания:   ±
На сайте с 22.06.2010

Статус: Offline

Quote
Интересная попытка, только как в Pic simulator ide можно всунуть HEX?
Еслиб попытаться скормить ему асм, но и то наверное не получится.
Пожалуй спасение только в Протеусе.

Странно в статье написано (порядок работы):
1. Запустить PIC simulator IDE
2. Нажать Настройка\Выбор микроконтроллера
3. Выбрать микроконтроллер
4. Нажать Файл\загрузка программы
5. Выбрать файл *.hex и нажать кнопку открыть
6. ...

Либо я что-то недопонимаю либо обьясните что к чему?

retas Дата: Ср, 30.06.2010, 20:13  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

Я давненько не дружу с PIC simulator IDE, но непомню чтоб применял 5-ый пункт - уже после 4-ого я запускал
имитацию. Да и раз уж у вас что-то не получается, берите Протеус - будете иметь возможность отладки в реальном времени
(в этом отношении PIC simulator IDE свой медленностью сильно портит нервы) да и не голово МК, а со всей
его обвязкой. Ну и для полного счастья, предлагаю писать на Протоне (спрыгнуть с pic basicpro на него очень
легко) - сможете Протеусу скармливать Протоновский .bas файл а слово .hex забыть.
Удачи!


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
deskjet Дата: Пн, 05.07.2010, 08:43  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 151
Репутация: 5   ±
Замечания:   ±
На сайте с 20.06.2009

Статус: Offline

to --AndreY--: можно просто скопировать текст программы и вставить в окно basic-редактора PIC simulator IDE.
Назначение переменных, типа, "b0 var byte" для PIC simulator IDE не верно, нужно заменить на
"Dim b0 As Byte".
ИМХО PIC simulator IDE отличная вещь для быстрой разработки и воплощения в железе


За 20 8 дней ни одного сгоревшего микроконтроллера.
PIC12, PIC16, PIC18, ATtiny, ATmega, STM8, STM32, MSP430

Сообщение отредактировал deskjet - Пн, 05.07.2010, 08:43
Форум Picbasic.ru » Программирование МК » Pic SimulatorIDE » Pic simulator ide выдаёт не правельный результат
Страница 1 из 11
Поиск: