Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
не поменяется , там человек на кнопку жмет , это все медленно
Отправлено
smartleds
25 марта 2009, г. 15:14
В ответ на:
Если к этому моменту оно уже не поменяется обратно
отправлено пользователем
albor
25 марта 2009, г. 15:10
Составить ответ
|
Вернуться на конференцию.
Ответы
Сколько фронтов пробежит на дребезге? Вот столько вызовов в стек и запихнётся... Пока кнопка новая стека будет хватать. Потом начнётся: "непонятный сбой", "авр гавно" "IAR гавно"...
-
maik-vs
(25.03.2009, 15:53:32
85.175.133.116
,
пустое
)
просто выставится ОДИН-ЕДИНСТВЕННЫЙ флаг.
-
Trashy
(25.03.2009, 16:15:50
192.168.1.99,213.167.60.22
,
пустое
)
Да Вы, батенька, на АВРах никогда не программировали. Там во время выполнения обработчика прерывания все прерывания запрещены (если только их не разрешить явно, что в данном случае совсем к месту). Стек не переполнится.
-
Шунт_гороховый
(25.03.2009, 15:58:23
95.24.114.23
,
пустое
)
Вы предлагаете сидеть в обработчике до прекращения дребезга?
-
Леонид Иванович
(25.03.2009, 16:37:31
87.252.227.58
,
пустое
)
Я предлагаю
-
Шунт_гороховый
(25.03.2009, 16:54:49
95.24.114.23
,
пустое
,
ссылка
)
Почему бы и нет? Задачи-то разные бывают.
-
smb
(25.03.2009, 16:48:18
192.168.125.208,212.5.70.188
, 140 байт)
Бывают. Но в общем случае это будет вредным советом :)
-
Леонид Иванович
(25.03.2009, 16:54:44
87.252.227.58
,
пустое
)
Да я только для них и программирую. И никогда вы не заставите меня повесить на прерывание непредсказуемый сигнал.
-
maik-vs
(25.03.2009, 16:11:31
85.175.133.116
,
пустое
)
Спасибо, за совет , буду думать тогда как без прерывания обойтись.
-
smartleds
(25.03.2009, 15:49:12
81.200.20.228
,
пустое
)
Поллингом обойтись. Периодически (в основном цикле / по прерыванию таймера) смотришь на состояние кнопки. Если
-
maik-vs
(25.03.2009, 16:06:43
85.175.133.116
, 393 байт)
Плюс как я делаю - можно впендюрить в любой таймер без накладных расходов.
-
Codavr
(25.03.2009, 16:18:41
91.196.34.210
,
пустое
)
Я так делаю (+)
-
Codavr
(25.03.2009, 16:01:51
91.196.34.210
, 370 байт)
Фактически это получается цифровой аналог интегратора. Я использую такой прием для
-
Леонид Иванович
(25.03.2009, 17:00:58
87.252.227.58
, 664 байт)
Moжно проще (+)
-
=NIK=
(25.03.2009, 16:18:21
213.221.24.183
, 401 байт)
А Вы возьмите резиновую кнопку, не новую. И подключите к осциллографу. И посмотрите. До 200 мс дребезга пополам с плавным изменением уровня.
-
maik-vs
(25.03.2009, 16:25:24
85.175.133.116
,
пустое
)
предыдущий метод сдесь тоже бессилен если настроен на меньшее время. поэтому сути это не меняет.
-
=NIK=
(25.03.2009, 16:37:53
213.221.24.183
,
пустое
)
Шорта с два. Если частота дребезга меньше времени переполнения, то пусть хоть пол-года дребезжит (если меандр :) ), но как тока перестанет немедля сработает.
-
Codavr
(25.03.2009, 16:42:8
91.196.34.210
,
пустое
)
период дребезга меньше длительности перепонения. Ну вы меня поняли :)
-
Codavr
(25.03.2009, 16:43:32
91.196.34.210
,
пустое
)
как не больше.
-
Codavr
(25.03.2009, 16:26:44
91.196.34.210
,
пустое
)
Ответ:
-
Codavr
(25.03.2009, 16:19:37
91.196.34.210
,
пустое
,
ссылка
)
:)
-
=NIK=
(25.03.2009, 16:26:21
213.221.24.183
,
пустое
)
Во, вместе написали :)
-
maik-vs
(25.03.2009, 16:09:37
85.175.133.116
,
пустое
)
Тады по таймеру с реверсивным счетом шоб дребезг контактов не мешал, а то будешь сорок раз нажатие обрабатывать и столько же отпускание.
-
Codavr
(25.03.2009, 15:35:19
91.196.34.210
,
пустое
)
кнопки по прерываниям не делают. (дурной тон)
-
=NIK=
(25.03.2009, 15:28:4
213.221.24.183
,
пустое
)
После возникновения прерывания от кнопки запрети это прерывание на время, необходимое для успокоения дребезга. И ничего дурного.
-
Шунт_гороховый
(25.03.2009, 16:00:31
95.24.114.23
,
пустое
)
Даже в малопотребляющих приложениях? У меня устройства спит. И по прерыванию с клавы просыпается.
-
Trashy
(25.03.2009, 15:56:8
192.168.1.99,213.167.60.22
,
пустое
)
Проснуться по внешнему прерыванию, заквасить таймер на поллинг, снова заснуть. По таймеру просыпаться и опрашивать состояние. Установилось - сделать дело и уснуть крепким сном.
-
Леонид Иванович
(25.03.2009, 16:43:7
87.252.227.58
,
пустое
)
А в этом случае обычно применяют прерывание по уровню, а не по фронту. Чтобы не нужно было тактировать.
-
vmp
(25.03.2009, 16:03:24
10.0.1.100,87.245.155.198
,
пустое
)
Кстати, на меге красивше всего получалось в режиме по уровню: в обработчике - тупо инкримент переменной. Как переменная достигла определённой цыферьки - значит нажали.
-
Trashy
(25.03.2009, 16:20:7
192.168.1.99,213.167.60.22
,
пустое
)
А не задолбаешься это прерывание по уровню без конца обрабатывать? Только таймер.
-
Codavr
(25.03.2009, 16:22:51
91.196.34.210
,
пустое
)
Без какого конца? три-четыре входа. Затем запрет прерывания на один цыкл(пока перересовка экрана или пересчёт введённых данных). И опять баиньки.
-
Trashy
(25.03.2009, 16:30:21
192.168.1.99,213.167.60.22
,
пустое
)
Если на цикл запрет, тогда нафига прерывание. В разы быстрее в том же цикле ногу опросить.
-
Codavr
(25.03.2009, 16:32:12
91.196.34.210
,
пустое
)
В смысле цыкл тела main{}.
-
Trashy
(25.03.2009, 16:33:19
192.168.1.99,213.167.60.22
,
пустое
)
какая разница кто будет включать прерывание назад? Ногу опросить быстрее и все тут.
-
Codavr
(25.03.2009, 16:45:40
91.196.34.210
,
пустое
)
Как ты можешь, если контроллер спит?
-
Trashy
(25.03.2009, 17:38:15
192.168.1.99,213.167.60.22
,
пустое
)
Эт хорошо, когда на меге работаешь, а вот МСПшники на меня с выпученными глазами смотрели, когда я про режим "по уровню" озвучил.
-
Trashy
(25.03.2009, 16:05:54
192.168.1.99,213.167.60.22
,
пустое
)
По уровню? Выскочил из прерывания и сразу назад заскочил?
-
Codavr
(25.03.2009, 16:24:10
91.196.34.210
,
пустое
)
Ну там по крайней мере фронты по отдельности выбираются.
-
vmp
(25.03.2009, 16:16:0
10.0.1.100,87.245.155.198
,
пустое
)
И в меге по отдельности.
-
Codavr
(25.03.2009, 16:25:41
91.196.34.210
,
пустое
)
Да? Ну с мегой я последний раз работал во времена меги103. А вот в САМах там действительно прерывания по обоим фронтам.
-
vmp
(25.03.2009, 16:36:30
10.0.1.100,87.245.155.198
,
пустое
)
В 103 тоже раздельно.
-
Codavr
(25.03.2009, 16:49:51
91.196.34.210
,
пустое
)
Да я не про то, как в меге устроено, а про то, что уже забыл про нее.
-
vmp
(25.03.2009, 16:56:26
10.0.1.100,87.245.155.198
,
пустое
)
Условие задачки следует упростить изначально. Логика подсказывает,
-
UraGun
(25.03.2009, 16:02:26
89.21.93.238
, 285 байт)
чтоб проснуться правильно прерывание применить, но потом ...
-
basilmak
(25.03.2009, 15:57:56
82.142.173.231
,
пустое
)
А потом опять спать.
-
Trashy
(25.03.2009, 16:00:17
192.168.1.99,213.167.60.22
,
пустое
)
+1
-
basilmak
(25.03.2009, 15:39:32
82.142.173.231
,
пустое
)
дребезг
-
Лунь
(25.03.2009, 15:15:29
86.111.22.10
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru