Два таймера и внешние прерывания
|
|
tesla88 |
Дата: Чт, 02.10.2014, 21:36 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
Всем привет!!! Возникла необходимость собрать один аппарат, но возник ряд проблем очень нужна помощь знающих людей . Суть такова - прибор должен управлять двумя электроклапанами , а запускаться они должны от внешнего прерывания. клапаны работают независимо друг от друга и время работы у каждого своё, то есть необходимо запускать два независимых таймера. Само железо уже собрано на pic16f876a, осталась только программная часть . Вот с программной частью как раз и возникла проблема - то есть прибор должен посчитать количество импульсов пришедших на порт прерывания - запустить первый таймер , потом через неопределённое время снова увидеть и посчитать импульсы по прерыванию и запустить второй таймер. Возможно ли это сделать на одном контроллере? ( все предыдущие проекты делал с двумя типами прерывания - внешнее и таймер, а тут целый симбиоз из прерываний нужно варганить)
|
|
|
|
dimitriy-bc |
Дата: Чт, 02.10.2014, 22:27 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
tesla88, уточните. Клапан должен срабатывать после нескольких прерываний по определенному входу, или как? Если счет должен происходить аппаратно, то в выбранном Вами пике такую функцию может выполнять только вход RA4 совместно с нулевым таймером.
Сообщение отредактировал
dimitriy-bc - Чт, 02.10.2014, 22:36
|
|
|
|
ADMIN |
Дата: Пт, 03.10.2014, 05:25 | Сообщение # 3 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Несколько вопросов: - какова частота импульсов? - какие ноги свободны?(схему можно глянуть?) - какие таймеры уже используются? - на какое, ориентировочно, время, нужно включать клапаны? - насколько точно должно соблюдаться это время? - как определяется, что импульсы именно для запуска второго клапана, а не первого? и наоборот?
|
|
|
|
tesla88 |
Дата: Пт, 03.10.2014, 09:22 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
В общем суть такова, собираются аппарат для управления душем и стиралкой, в меню ЖК дисплея выбирается тот или иной режим, закидываются деньги в купюроприемник , а он в свою очередь выдаёт определённое количество импульсов на порт B.0, после этого запускает первый клапан на время той суммы которую внесли- работает , пока клапан работает выбирается функция стиралки и закидываются деньги , снова сочетаются импульсы и рассчитывается время второго таймера
|
|
|
|
ADMIN |
Дата: Пт, 03.10.2014, 10:44 | Сообщение # 5 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Ну для количества импульсов достаточно входа INT, все правильно. В прерывании считается количество, включается режим и запускается таймер, допустим T0. Интервал срабатывания таймера, скажем, 100 мС. Каждые 100 мС в прерывании инкрементируем счетчик времени открытия клапана. После открытия клапана, ждем прихода импульсов на запуск стирки, после прихода - так же - считаем, запускаем таймер, хотя можно использовать тот же T0, но переменную для счета уже другую. И постоянно проверяем на окончание обе переменные. Все с помощью флагов. Что именно не получается?
|
|
|
|
tesla88 |
Дата: Пт, 03.10.2014, 16:26 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
именно так я и планировал делать этот проэкт, но меня смущает один нюанс , а именно - импулься приходят от манетоприёмника в разном колличестве и в разное время ( разный номинал денег закидывают в разное неопределённое время), не будут ли проподать входящие импульсы при прерывании с учётом работы одного или двух таймеров ( и кстати самый главный вопрос - мугут ли работоть два таймера одновременно?) - время работы клапанов от 20ти минут до часа. - частота кварца 4 МГЦ - программы пока нет ( для начала надо разобраться с возможными вариантами решения поставленной задачи) - выбор клапанов будет осуществляться через меню на лсд - принципиальной схемы нет ( точнее есть но в голове))) - колличество импульсов от манетника разное но для максимального наминала это 100 импульсов за 0,5 секунды
Сообщение отредактировал
tesla88 - Пт, 03.10.2014, 16:45
|
|
|
|
dimitriy-bc |
Дата: Сб, 04.10.2014, 09:41 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
150
Замечания:
±
На сайте с 19.03.2012
Статус:
Offline
|
Цитата tesla88 ( ) меня смущает один нюанс , а именно - импулься приходят от манетоприёмника в разном колличестве и в разное время ( разный номинал денег закидывают в разное неопределённое время), не будут ли проподать входящие импульсы при прерывании с учётом работы одного или двух таймеров ( и кстати самый главный вопрос - мугут ли работоть два таймера одновременно?) В прерываниях у Вас будут участвовать INT для подсчета заложенных денег, таймер0 (можно с предделителем) для допустим клапана душа и таймер1 (также можно с предделителем) для стирки. Все эти прерывания прекрасно работаю вместе и друг другу не мешают.
|
|
|
|
xvovanx |
Дата: Чт, 09.10.2014, 17:32 | Сообщение # 8 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
328
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Добрый день коллеги! Тоже возник вопрос по прерываниям. Необходима одновременная работа двух прерываний - контроль внешних импульсов INT и счетчик по переполнению TMR1. Как сделать INT внешние прерывания приоритетными. Скажем, чтобы в момент пересчета времени (TMR1) не пропустить импульс с внешнего входа? P.S. раньше обходился одним прерыванием, а тут боюсь, чтоб одно прерывание не тормознуло другой
|
|
|
|
ivan_fd |
Дата: Чт, 09.10.2014, 20:03 | Сообщение # 9 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
18F Вам в помощь, там есть система приоритетных прерываний. А в 16F пока не обработается одно прерывание, другое будет ждать.
|
|
|
|
ADMIN |
Дата: Пт, 10.10.2014, 04:19 | Сообщение # 10 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Кстати, совсем забыл про статью - вот здесь, возможно, найдется пища для размышлений...
|
|
|
|