Не работает программа для PIC16F84
|
|
xxxmonejall |
Дата: Сб, 23.05.2009, 20:49 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
139
Замечания:
±
На сайте с 17.05.2008
Статус:
Offline
|
Code imp var word symbol imp_in = portb.0 symbol imp_out1 = portb.1 symbol imp_out2 = portb.2 symbol imp_out3 = portb.3 symbol imp_out4 = portb.4 symbol imp_out5 = portb.5 symbol imp_out6 = portb.6 symbol imp_out7 = portb.7 trisb = %10000000 imp_out1 = 0 imp_out2 = 0 imp_out3 = 0 imp_out4 = 0 imp_out5 = 0 imp_out6 = 0 imp_out7 = 0 main: count imp_in, 1000, imp if imp < 10 then goto morg if (imp > 9) and (imp < 16) then goto main1 if (imp > 15) and (imp < 33) then goto main2 if (imp > 32) and (imp < 50) then goto main3 if (imp > 49) and (imp < 66) then goto main4 if (imp > 65) and (imp < 83) then goto main5 if (imp > 82) and (imp < 100) then goto main6 if imp > 99 then goto main7 morg: imp_out1 = 1 pause 100 goto main
main1: imp_out1 = 1 goto main main2: imp_out2 = 1 goto main main3: imp_out3 = 1 goto main main4: imp_out4 = 1 goto main main5: imp_out5 = 1 goto main main6: imp_out6 = 1 goto main main7: imp_out7 = 1 goto main
|
|
|
|
toommy |
Дата: Сб, 23.05.2009, 21:40 | Сообщение # 2 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 04.11.2008
Статус:
Offline
|
первая ошибка trisb+ %0000001
|
|
|
|
demanik |
Дата: Сб, 23.05.2009, 21:40 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Она работает. Пробовал в протеусе для 16Ф876А. Как конкретно она не работает. Забываем указывать название пика.
Попробуй всё и вся... может быть пол...
|
|
|
|
toommy |
Дата: Сб, 23.05.2009, 21:42 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
13
Замечания:
±
На сайте с 04.11.2008
Статус:
Offline
|
if (imp > 9) and (imp < 16) then goto main1 как понимать вставку and ?
|
|
|
|
demanik |
Дата: Сб, 23.05.2009, 21:45 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (toommy) как понимать вставку and ? Если количество имп. болше 9 и меньше 16 то....
Попробуй всё и вся... может быть пол...
|
|
|
|
Dmitry |
Дата: Вс, 24.05.2009, 00:15 | Сообщение # 6 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Направление работы POTRB.0 задается в нулевом бите регистра TRIS, поэтому trisb = %00000001 ' PORTB.0 - вход, остальные - выход
Сообщение отредактировал
Dmitry - Вс, 24.05.2009, 00:21
|
|
|
|
xxxmonejall |
Дата: Вс, 24.05.2009, 13:22 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
139
Замечания:
±
На сайте с 17.05.2008
Статус:
Offline
|
Извените, исправлюсь Pic16f84. Quote (demanik) Если количество имп. болше 9 и меньше 16 то.... Да это так. только я не знаю или я это правильно записал????? При включение программы диоды подсоединенные к выводам контролера. Загораются в радоном порядке.
Сообщение отредактировал
xxxmonejall - Вс, 24.05.2009, 13:26
|
|
|
|
brown |
Дата: Вс, 24.05.2009, 14:09 | Сообщение # 8 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
xxxmonejall, Я так понял нужно индицировать точкой входную частоту по portb.0. Диапазон частоты? >=100Гц судя по строке if imp > 99 then goto main7 . Quote (xxxmonejall) trisb = %10000000 Quote (toommy) первая ошибка trisb+ %0000001 строка count imp_in, 1000, imp исправляет эту ошибку переключая портБ.0 на вход. Еще после неё я бы настоятельно рекомендовал ввести: portb=0 Quote (xxxmonejall) При включение программы диоды подсоединенные к выводам контролера. Загораются в радоном порядке. А так должна работать.
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Сообщение отредактировал
brown - Вс, 24.05.2009, 14:40
|
|
|
|
demanik |
Дата: Вс, 24.05.2009, 14:24 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (brown) Я так понял нужно индицировать точкой входную частоту по portb.0 Чтобы у желающих помочь разобратся не возникало подобных догадок рекомендую авторам в начале вместе с куском проги хотябы кратко изложить задачу (что прога должна делать и как себя вести). Всем будет легче помогать.
Попробуй всё и вся... может быть пол...
|
|
|
|
xxxmonejall |
Дата: Вс, 24.05.2009, 15:21 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
139
Замечания:
±
На сайте с 17.05.2008
Статус:
Offline
|
Я камушек спалил. И что теперь делать???? Придется Протеус осваивать!!!!!
|
|
|
|
terrarus |
Дата: Вс, 24.05.2009, 15:33 | Сообщение # 11 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Вообще-то такой камень спалить трудно. Освоить Протеус Вам просто необходимо. Вот увидите как он Вас продвинет. Успехов в освоении Протеуса.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
demanik |
Дата: Вс, 24.05.2009, 16:00 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (terrarus) Вообще-то такой камень спалить трудно Попробуйте в нвчале вставить: @ device pic16F84, xt_osc, wdt_off, protect_off, pwrt_on DEFINE OSC 4
Попробуй всё и вся... может быть пол...
|
|
|
|
xxxmonejall |
Дата: Вс, 24.05.2009, 22:55 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
139
Замечания:
±
На сайте с 17.05.2008
Статус:
Offline
|
Все готово. Вот рабочая программа. Предназначается она для индикации оборотов двигателя от 500 – горит один светодиод и до 7000 горит 2 светодиода, вот такой вот тахометр. Тюнинг одним словом. Code @ device pic16F84, xt_osc, wdt_off, protect_off, pwrt_on DEFINE OSC 4 portb = 0
imp var word symbol imp_in = portb.0 symbol imp_out1 = portb.1 symbol imp_out2 = portb.2 symbol imp_out3 = portb.3 symbol imp_out4 = portb.4 symbol imp_out5 = portb.5 symbol imp_out6 = portb.6 symbol imp_out7 = portb.7 trisb = %00000001 imp_out1 = 0 imp_out2 = 0 imp_out3 = 0 imp_out4 = 0 imp_out5 = 0 imp_out6 = 0 imp_out7 = 0 main: count imp_in, 1000, imp portb = 0 if imp < 10 then goto morg if (imp > 9) and (imp < 16) then goto main1 if (imp > 15) and (imp < 33) then goto main2 if (imp > 32) and (imp < 50) then goto main3 if (imp > 49) and (imp < 66) then goto main4 if (imp > 65) and (imp < 83) then goto main5 if (imp > 82) and (imp < 100) then goto main6 if imp > 99 then goto main7
morg: imp_out1 = 1 pause 100 goto main
main1: imp_out1 = 1 goto main main2: imp_out1 = 1 imp_out2 = 1
goto main main3: imp_out1 = 1 imp_out2 = 1 imp_out3 = 1
goto main main4: imp_out1 = 1 imp_out2 = 1 imp_out3 = 1 imp_out4 = 1
goto main main5: imp_out1 = 1 imp_out2 = 1 imp_out3 = 1 imp_out4 = 1 imp_out5 = 1
goto main main6: imp_out1 = 1 imp_out2 = 1 imp_out3 = 1 imp_out4 = 1 imp_out5 = 1 imp_out6 = 1
goto main main7: imp_out1 = 1 imp_out2 = 1 imp_out3 = 1 imp_out4 = 1 imp_out5 = 1 imp_out6 = 1 imp_out7 = 1
goto main end Добавлено (24.05.2009, 10:55:48) --------------------------------------------- Есть только еще один вопрос. Импульсы на катушке амплитудой в 12 в. Как их заточить под контролер.
|
|
|
|
demanik |
Дата: Вс, 24.05.2009, 23:17 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Quote (xxxmonejall) Как их заточить под контролер. приблизительно так:
Попробуй всё и вся... может быть пол...
|
|
|
|
xxxmonejall |
Дата: Пн, 25.05.2009, 00:14 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
139
Замечания:
±
На сайте с 17.05.2008
Статус:
Offline
|
Quote (demanik) Как их заточить под контролер. приблизительно так: Прикрепления: 8341202.gif(2Kb) Большое спасибо demanik! Попробую это все на мото!
|
|
|
|