Вибромодуль.

PIC версия программы(разные темы)

Вибромодуль.

Сообщение amarok_isr (Серега) » 07 июн 2017, 15:46

Добрый день.
Задача достаточно простая.
Но к сожалению я в ней запутался.
Прошу помощи.
Разъясните пожалуйста.
Есть плата. Плата не моя. Использован процессор PIC16f676. Кварц 10 мгц.
Получаю через оптопару импульсы из сети 220 вольт. Т.Е. стоит детектор ноля.
Необходимо открывать полевик (особенность конструкции).
Устройство управляет виброкатушкой.
Во вложении два примера.
Пример номер 1.
По прерыванию получаю импульс. Перевожу ножку в ноль (особенность конструкции).
Выставляю задержку от 1 до 10 миллисекунд и после этого выставляю ножку в единицу.
Работает как часы.
Но в момент задержки я ничего делать не могу.
А необходимо смотреть состояние других портов.

Вариант номер два.
По прерыванию получаю импульс. Перевожу ножку в ноль (особенность конструкции).
Выставляю задержку 100 микросекунд и проверяю количество набранных циклов. Например 20 (должно равняться двум миллисекундам). После выполнения условия выставляю ножку в единицу и сбрасываю количество набранных циклов.
В результате величина импульса плавает от 0 до 2 миллисекунд.
Не могу понять почему величина импульса плавает (проверяю осциллографом).
Что я делаю не так???
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: amarok_isr
Имя: Серега
(Санкт Петербург)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Вибромодуль.

Сообщение Vovan_G5 (Владимир) » 07 июн 2017, 16:45

Если нужно четко выдержать время импульса - используй таймер, который включаешь, когда переходишь через 0. Отсчитал, выключил таймер и подал свою единичку.
Если длина импульса не очень критична - посчитай сколько времени тебе нужно на какие то операции, то ли проверить порт, то ли что то посчитать, если получается это время стабильным, то используй его вместо своей задержки.
Ник: Vovan_G5
Имя: Владимир
(Харьков)
Консультант
Консультант
Информация о пользователе

Re: Вибромодуль.

Сообщение amarok_isr (Серега) » 07 июн 2017, 17:27

Дай пожалуйста пример.
Что бы было более понятно.
Ник: amarok_isr
Имя: Серега
(Санкт Петербург)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вибромодуль.

Сообщение Taska (Максим) » 07 июн 2017, 17:39

Смотри темы управление симистором.
Аватар пользователя
Ник: Taska
Имя: Максим
(Кривой Рог)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Вибромодуль.

Сообщение amarok_isr (Серега) » 07 июн 2017, 17:48

Спасибо.
Похоже понял свой косяк.
Позже отпишусь.
Ник: amarok_isr
Имя: Серега
(Санкт Петербург)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Вибромодуль.

Сообщение amarok_isr (Серега) » 19 июн 2017, 15:25

Всем привет.
Спасибо огромное за помощь.
В действительности сделал дополнительное прерывание по переполнению таймера.
Его отслеживаю и подсчитываю.
Программа заработала как часы.
Всем спасибо за помощь.
Ник: amarok_isr
Имя: Серега
(Санкт Петербург)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх


Вернуться в Flowcode PIC

Кто сейчас на форуме

Пользователь просматривает форум: kool78

cron