|
|
 |
Ответов
|
Apr 26 2017, 13:46
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 2-04-08
Пользователь №: 36 411

|
Цитата(Obam @ Apr 26 2017, 16:42)  Так ведь и GPIO реагирует только на фронт (или прерывания от порта не нужны?). Дребезг - это как раз несколько переключений (в итоге фронтов) в течение мс 30-ти, не меньше… и каждый свой фронт NMI отработает (приоритет самый старший и быстродействия хватит) - вот в этом и "головняк". Быстродействие человека существенно ниже что-то ~ 5 нажатий в секунду.
ПовозИтесь, конечно, с NMI, пощупайте, опыт он лишним не будет, но (по моему скромному опыту) результативнее опрос кнопок по таймеру. SLAA139 документик техасовский на всякий случай гляньте. На порту можно еще и уровень проверить, а на входе NMI нет. Антидребезг на порту: ловим переход, по таймеру выжидаем время, проверяем уровень если тот-что нужен - фиксируем нажатие, а как реализовать подобное на NMI (попроще) я не знаю. Документик сейчас посмотрю.
|
|
|
|
|
Apr 26 2017, 14:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(SerjT @ Apr 26 2017, 16:46)  На порту можно еще и уровень проверить, а на входе NMI нет. Антидребезг на порту: ловим переход, по таймеру выжидаем время, проверяем уровень если тот-что нужен - фиксируем нажатие, . . . При отработке прерывания по кнопке (допустим Fail) в векторе запрещается это прерывание и идет longjump() на точку, где реализован цикл с LPM3 - там активизируется таймер ACLK/250ms опроса состяния порта раз в 250 мс в течение около 4с. С анализом что-когда-сколько времени нажималось + антидребезг. В моем случае это не кнопка, а состояние системы питания (авария), поэтому стек можно было обнулить и пойти на ресет по longjump. Нет смысла дрегать вектор прерывания кнопкой с дребезгом и бороться с нимже.
|
|
|
|
|
Apr 26 2017, 14:23
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 2-04-08
Пользователь №: 36 411

|
Цитата(k155la3 @ Apr 26 2017, 17:15)  При отработке прерывания по кнопке (допустим Fail) в векторе запрещается это прерывание и идет longjump() на точку, где реализован цикл с LPM3 - там активизируется таймер ACLK/250ms опроса состяния порта раз в 250 мс в течение около 4с. С анализом что-когда-сколько времени нажималось + антидребезг. В моем случае это не кнопка, а состояние системы питания (авария), поэтому стек можно было обнулить и пойти на ресет по longjump. Нет смысла дрегать вектор прерывания кнопкой с дребезгом и бороться с нимже. Я вроде примерно также и описал: 1. Ловим первый переход (фрон, срез - что требуется нажатие, отпучкание), 2. Отключаем прерывания от кнопки 3. ждем время дребезга . 4. проверяем состояние порта (для защиты от случайных помех) 5. если состояние нужное - фиксируем нажатие. 6. по таймеру, с фиксированным (или нет) интервалом проверяем состояние порта 7. если по истечению N-проверок порт не менял состояние фиксирум нажатие длинны N.
|
|
|
|
|
Apr 27 2017, 08:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(SerjT @ Apr 26 2017, 17:23)  Я вроде примерно также и описал: . . . Моя софтина по такой схеме тестируется уже около месяца - "завесы" в непонятном состоянии не замечены. Ресетный пин не трогался - ф-ия ресет. Проц - F5438A. ps - после отработки прерывания пин сигнала просто опрашивается.
|
|
|
|
Сообщений в этой теме
SerjT Объединить Rst и порт Apr 26 2017, 05:46 Baser Цитата(SerjT @ Apr 26 2017, 08:46) Вопрос... Apr 26 2017, 09:59 SerjT Цитата(Baser @ Apr 26 2017, 12:59) Пробле... Apr 26 2017, 13:18  Baser Цитата(SerjT @ Apr 26 2017, 16:18) Вот ту... Apr 26 2017, 14:05 Obam Цитата(SerjT @ Apr 26 2017, 09:46) …На вх... Apr 26 2017, 11:23  Obam Цитата(SerjT @ Apr 26 2017, 17:46) На пор... Apr 26 2017, 14:05 SerjT Цитата(Baser @ Apr 26 2017, 17:05) Для бы... Apr 26 2017, 14:11 Baser Цитата(SerjT @ Apr 26 2017, 17:11) Да вот... Apr 26 2017, 15:09  jcxz Цитата(Baser @ Apr 26 2017, 17:09) и улуч... Apr 28 2017, 21:25   dxp QUOTE (jcxz @ Apr 29 2017, 04:25) Честных... Apr 29 2017, 11:18    Obam Цитата(dxp @ Apr 29 2017, 15:18) Intel 8x... Apr 29 2017, 14:14     dxp QUOTE (Obam @ Apr 29 2017, 21:14) Но рабо... May 1 2017, 07:53   Baser Цитата(jcxz @ Apr 29 2017, 00:25) Честных... May 1 2017, 19:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|