реклама на сайте
подробности

 
 
> пауза в ISR, PIC18
0x56
сообщение Jul 11 2009, 16:11
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 15-02-09
Пользователь №: 44 904



как сделать паузу в обработчике внешнего прерывания?
есть какие-то ограничения или связь с таймерами пика?
при наличии в ней delay_ms() заметил глюки но не понял что это
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
0x56
сообщение Jul 11 2009, 17:10
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 15-02-09
Пользователь №: 44 904



а нужно просто дребезг котактов(gsm сигнализация) исключить, 50 мс
я вот думаю теперь как определить в таймере сколько прошло времени после вызова INT_EXT
быстрый цикл майн мне не подойдет имхо

Сообщение отредактировал 0x56 - Jul 11 2009, 17:14
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 11 2009, 17:23
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(0x56 @ Jul 11 2009, 21:10) *
а нужно просто дребезг котактов(gsm сигнализация) исключить, 50 мс

Понятно.
Я уже в одной теме выкладывал, на второй раз терпежу не хватит...
Вкратце алгоритм такой.
В прерывании от контакта выставляете флаг изменения состояния кнопки и засекаете время данного события. А ещё лучше время плюс задержку.
Далее, в основном цикле, делаете проверку, прошло это время или нет.
Например:
if(TimeCtr>KeyTime) // кнопка таки нажата (или отпущена)
{
Опрашиваем состояние кнопки
Сбрасываем флаг
Выполняем нужные действия
}


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01336 секунд с 7
ELECTRONIX ©2004-2016