Cчет импульсов
|
|
DeveloperX |
Дата: Пт, 25.01.2008, 09:52 | Сообщение # 106 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
меня осенило! http://slil.ru/25397785 сделал каждый разряд отдельно! другая проблема: захотел убрать ведущие нули, но после реализации подсчет импульсов заметно замедлился - показания увеличились... слишком много LCDOUT. нельзя ли по-другому реализовать это? ещё задумал добавить кнопку, которая бы обнуляла бы показания маршрутного одометра. наверное нужно обрабатывать прерывание от нажатия кнопки при котором обнулялись бы некоторые переменные... помогите внести соответствующие изменения в проект/программу. а ещё придумал подавать питание на пик через большой конденсатор, а каким-нибудь портом пика проверять падение(наличие) напряжения до конденсатора, и при отключении питания останавливать прерывания и совершать запись переменных в еепром. не скажется ли такой мониторинг на качестве подсчета импульсов?
Сообщение отредактировал
DeveloperX - Пт, 25.01.2008, 10:29
|
|
|
|
Yrok |
Дата: Пт, 25.01.2008, 11:46 | Сообщение # 107 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
да-а-а-аа-вот ты наваял)))) проигнорировал все мои советы конечноже--ну да ладно про Quote но после реализации подсчет импульсов заметно замедлился - показания увеличились... слишком много LCDOUT. --сам себе правильно ответил про кнопку--смотри как к 876 пику кнопки приделаны--и сделай опрос соответствующего пина Quote а ещё придумал подавать питание на пик через большой конденсатор, а каким-нибудь портом пика проверять падение(наличие) напряжения до конденсатора, и при отключении питания останавливать прерывания и совершать запись переменных в еепром. не скажется ли такой мониторинг на качестве подсчета импульсов? --смотря как реализуешь)))--впринципе недолжно
|
|
|
|
DeveloperX |
Дата: Пт, 25.01.2008, 11:51 | Сообщение # 108 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Quote (Yrok) --смотря как реализуешь)))--впринципе недолжно 1500мкФ на сколько секунд работы пика? если к порту подать питание до кондера - можно ли поставить порт на прерывание по лог. 0 при падении напряжения ниже лог. 1? в протеусе внедрил кондер, а пик не работает... помогите наваять. вот проект http://slil.ru/25398195 - забыл уже, как откалибровать таймер на 1 сек при 20МГЦ кварце? и состояние кнопки не могу определить!
Сообщение отредактировал
DeveloperX - Пт, 25.01.2008, 12:18
|
|
|
|
Yrok |
Дата: Пт, 25.01.2008, 14:08 | Сообщение # 109 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Quote если к порту подать питание до кондера - можно ли поставить порт на прерывание по лог. 0 при падении напряжения ниже лог. 1? --можно 20000000/4/256/256=примерно 76--значит s должно быть 76 а предделитель 256 Quote и состояние кнопки не могу определить! --а ты порты А перевел из аналоговых входов в цифровые????---нет--тогда вперед))
|
|
|
|
DeveloperX |
Дата: Пт, 25.01.2008, 15:02 | Сообщение # 110 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Quote (Yrok) 20000000/4/256/256=примерно 76--значит s должно быть 76 а предделитель 256 как это указать в программе. там же явно 256 не впишешь? Quote (Yrok) --а ты порты А перевел из аналоговых входов в цифровые????---нет--тогда вперед)) не знаю как
|
|
|
|
Yrok |
Дата: Пт, 25.01.2008, 16:43 | Сообщение # 111 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
это прописывается в Option_reg
|
|
|
|
DeveloperX |
Дата: Вс, 27.01.2008, 21:57 | Сообщение # 112 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Quote (Yrok) это прописывается в Option_reg с этим вопросом не разобрался... я уже задавал вопрос про значение OPTION_REG = $43... почему $43 так и не узнал. поэтому понятия не имею как изменить это на 76! в книге про программирование пиков на бейсике Чака Х. только информация о битах регистра OPTION и никаких примеров... а где и как прописать прерывание от порта (например PortA.0) при лог. 0? например, в той же книге написано, что "Вывод 0 порта PORTB - единственный вывод, сигнал на котором может вызвать внешнее прерывание"... так можно ли разрешить прерывание по падению напряжения какого-нибудь вывода PORTA???
Сообщение отредактировал
DeveloperX - Пн, 28.01.2008, 01:05
|
|
|
|
ADMIN |
Дата: Пн, 28.01.2008, 08:31 | Сообщение # 113 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
разложи на двоичное число $43 - %01000011 - отсюда имеем: бит 7 равен 0, значит подтягивающие резисторы не подключены бит 6 =1 прерывание по portb.0 -по переднему фронту, бит 5=0 TMR0 тактируется внутренним генератором бит 4=0 не важен в данном случае, поскольку генератор внутренний для TMR0 бит 3 =0 выбор предделителя - в данном случае предделитель включен перед TMR0 биты 2-0 коэффициент деления предделителя здесь он равен 1:16 Поэтому всегда читай даташит, устанавливай биты в двоичном режиме, а потом переводи в шестнадцатиричную, если хочешь
|
|
|
|
DeveloperX |
Дата: Пн, 28.01.2008, 08:49 | Сообщение # 114 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
basicpic, разобрался наконец-то... Yrok, s пришлось увеличить до 79, т.к. при 76 скорость показывал 193км/м, а при 333гц должен 200 показывать.
Сообщение отредактировал
DeveloperX - Пн, 28.01.2008, 09:02
|
|
|
|
Yrok |
Дата: Пн, 28.01.2008, 09:27 | Сообщение # 115 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Quote Yrok, s пришлось увеличить до 79, т.к. при 76 скорость показывал 193км/м, а при 333гц должен 200 показывать. ---да к сожалению это издержки PBP((((--из-за чего мне пришлось перелезть на microbasic--прерывания наступают только после выполнения оператора.
|
|
|
|
DeveloperX |
Дата: Пн, 28.01.2008, 09:41 | Сообщение # 116 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
Yrok, basicpic, а что можете посоветовать по поводу кнопки или прерывания от порта для мониторинга падения напряжения???
|
|
|
|
evgenb |
Дата: Пн, 28.01.2008, 09:51 | Сообщение # 117 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 14.09.2007
Статус:
Offline
|
DeveloperX, Здесь выложил описание внутренностей PIC 16ХХХ : http://slil.ru/25407894 Yrok, Что, microbasic входит в прерывание сразу?
|
|
|
|
DeveloperX |
Дата: Пн, 28.01.2008, 10:03 | Сообщение # 118 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
149
Замечания:
±
На сайте с 25.10.2007
Статус:
Offline
|
evgenb, а конкретно под picbasic что-нибудь подсказать можете?
|
|
|
|
Yrok |
Дата: Пн, 28.01.2008, 10:38 | Сообщение # 119 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
evgenb, --да microbasic уходит в прерывания даже во время выполнения операторов!!!!!!!!!!!)))))) DeveloperX, --я же говорил тебе про кнопку--конфигуришь порт А как вход,и в теле программы проверяешь изменение уровня--а еще проще смотри оператор Button --там сразу можно привязать кнопку к конкретной ноге пика и отслеживать нажатие--так что дерзай))
|
|
|
|
ADMIN |
Дата: Пн, 28.01.2008, 10:45 | Сообщение # 120 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
для того, чтобы компилятор отрабатывал прерывание без задержек попробуйте просто написать обработчик на асме(не сам обработчик, а метку): org 0x004 обработчик retfie без этих on interrupt просто разрешайте прерывания и все. Заодно скажу, в протоне есть помимо on interrupt label, инструкция on_interrupt label, которая моментально переводит рабочую точку программы на обработчик label. Просто, для справки...
|
|
|
|