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

 
 
> LPC11xx и обработка прерываний
deplen
сообщение Feb 6 2013, 16:16
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 143
Регистрация: 19-11-12
Пользователь №: 74 471



Код
volatile uint32_t count = 1;
void PIOINT1_IRQHandler(void)
{
    GPIOIntClear( 1, 9 );
    if( count != 7 )
    {
        count++;
    }
    else
    {
        LPC_GPIO0->MASKED_ACCESS[( 1 << 7 )] = ( 0 << 7 );
        count = 1;
    }
}

int main(void) {
    LPC_SYSCON->SYSAHBCLKCTRL |= ( 1 << 6 );
    NVIC_EnableIRQ( EINT1_IRQn );
    LPC_GPIO0->DIR |= ( 1 << 7 );               // настраиваем PIO0.7 на вывод (светодиод LPCXpresso)
    GPIOSetDir( 1, 9, 0 );

    GPIOSetInterrupt( 1, 9, 0, 0, 0 );
    GPIOIntEnable( 1, 9 );
}

Есть вот такой код обработки прерывания. Суть его такая: при запуске горит светодоид, но при 7 разовом нажатии на кнопку светодиод должен погаснуть. Но работает как то странно. То 7 раз нажать на кнопку и гаснет, то 6, то 4, то 3. Вобщем разные цифры.
В чем я ошибся при кодировании прерывания?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
deplen
сообщение Feb 11 2013, 15:12
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 143
Регистрация: 19-11-12
Пользователь №: 74 471



Реализовал чтение порта на нажатие кнопки. Каждые 0.05 секунды выполняется чтение нажатия. Никакого дребезга больше нет.

Но хотелось бы как то заставить таймер следить что бы не было слишком длительных ожидания нажатий. Всмысле, например, пользователь нажал 2 раза, а третий не нажал, то в памяти так два раза и останется. А хотелось бы, если было хотя бы одно нажатие, то запускался счетчик на 5 секунд втечении которых пользователь должен успеть нажать еще 2 раза. Может есть идеи как это реализуется в таймере LPC?

Сообщение отредактировал deplen - Feb 11 2013, 16:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- deplen   LPC11xx и обработка прерываний   Feb 6 2013, 16:16
- - Golikov A.   в дребезге контактов? кнопка - это не четкий фро...   Feb 6 2013, 16:38
- - Black Pahan   А дребезг контактов как устраняете?   Feb 6 2013, 16:39
- - _Артём_   Цитата(deplen @ Feb 6 2013, 18:16) В чем ...   Feb 6 2013, 16:42
- - deplen   Просто задача стоит что бы по последовательности н...   Feb 6 2013, 16:51
|- - _Артём_   Цитата(deplen @ Feb 6 2013, 18:51) Просто...   Feb 6 2013, 16:58
- - Golikov A.   это просто. после прерывания считает отсчет и ста...   Feb 6 2013, 17:27
- - DVF   А разве ноги на вход не имеют Schmitt Trigger? Tог...   Feb 6 2013, 19:24
- - Alex11   Триггеров Шмитта как правило нет. Но даже если ест...   Feb 6 2013, 22:43
|- - jcxz   0.5мс???? Вы реально способны нажимать на кнопк...   Feb 7 2013, 06:50
- - Alex11   0.5 мс, если Вы внимательно прочитали пост, - это ...   Feb 7 2013, 14:51
|- - Сергей Борщ   Опрашиваю кнопки раз в 50 мс. При этом дребезг гас...   Feb 7 2013, 15:14
|- - jcxz   Цитата(Alex11 @ Feb 7 2013, 20:51) 0.5 мс...   Feb 8 2013, 05:37
- - deplen   а что делает HYSTERESYS в настройках каждого пина,...   Feb 7 2013, 15:54
|- - _Артём_   Цитата(deplen @ Feb 7 2013, 17:54) а что ...   Feb 7 2013, 16:22
- - Golikov A.   зависит от задачи. Опрос кнопок в цикле частеньк...   Feb 7 2013, 18:48
|- - Сергей Борщ   QUOTE (Golikov A. @ Feb 7 2013, 20:48) Пе...   Feb 7 2013, 23:39
- - Golikov A.   по определению... быстрые клики попавшие в паузы...   Feb 8 2013, 03:22
|- - HHIMERA   Цитата(Golikov A. @ Feb 8 2013, 06:22) Гл...   Feb 8 2013, 05:39
|- - Сергей Борщ   QUOTE (Golikov A. @ Feb 8 2013, 05:22) по...   Feb 8 2013, 10:45
- - Golikov A.   надо разделить сложности проектирования и текущую ...   Feb 8 2013, 11:39
|- - _Артём_   Цитата(Golikov A. @ Feb 8 2013, 13:39) Ка...   Feb 8 2013, 12:03
||- - Golikov A.   Цитата(_Артём_ @ Feb 8 2013, 16:03) Выигр...   Feb 8 2013, 12:14
||- - _Артём_   Цитата(Golikov A. @ Feb 8 2013, 14:14) то...   Feb 8 2013, 12:21
||- - Tahoe   Цитата(Golikov A. @ Feb 8 2013, 16:14) Ес...   Feb 8 2013, 12:57
|- - scifi   Цитата(Golikov A. @ Feb 8 2013, 15:39) Ка...   Feb 8 2013, 12:06
|- - Golikov A.   Цитата(scifi @ Feb 8 2013, 16:06) Я думал...   Feb 8 2013, 12:27
|- - scifi   Цитата(Golikov A. @ Feb 8 2013, 16:27) Хо...   Feb 8 2013, 12:31
- - Golikov A.   мне кажется меня не слышат, наверное вам кажется т...   Feb 8 2013, 12:41
|- - scifi   Цитата(Golikov A. @ Feb 8 2013, 16:41) Мо...   Feb 8 2013, 12:46
|- - HHIMERA   Цитата(Golikov A. @ Feb 8 2013, 15:41) Мо...   Feb 8 2013, 13:17
- - Golikov A.   ну все, убедили. переписываю все проекты с прерыв...   Feb 8 2013, 13:15
- - Golikov A.   Окей Окей ...   Feb 8 2013, 15:29
- - adnega   Пример, конечно, надуманный, но все же: что будет,...   Feb 8 2013, 18:05
- - Golikov A.   ну я же согласился второй надуманный пример, что ...   Feb 8 2013, 18:45
|- - Tahoe   Цитата(Golikov A. @ Feb 8 2013, 22:45) чт...   Feb 8 2013, 19:09
|- - jcxz   Цитата(Golikov A. @ Feb 9 2013, 00:45) вт...   Feb 9 2013, 08:56
- - Golikov A.   В целом я уже согласился, прерывание плохо, полинг...   Feb 9 2013, 12:49
|- - jcxz   Вот!!! Так и думал! Т.е. - тайм...   Feb 9 2013, 17:24
- - Golikov A.   вы не внимательны. этот таймер не имеет прерывания...   Feb 9 2013, 17:36
|- - Tahoe   Цитата(Golikov A. @ Feb 9 2013, 21:36) Кн...   Feb 9 2013, 18:20
- - deplen   даже не думал, что обработка нажатия на кнопку выз...   Feb 10 2013, 18:31
- - Golikov A.   запустить в таймере счетчик?   Feb 11 2013, 15:21
|- - deplen   Цитата(Golikov A. @ Feb 11 2013, 19:21) з...   Feb 11 2013, 15:49
- - Golikov A.   естественно первое нажатие задает значение счетчи...   Feb 11 2013, 16:07
- - deplen   Все. Всем спасибо. Прерывание реализовано по тайме...   Feb 13 2013, 19:06


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 10:01
Рейтинг@Mail.ru


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