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

 
 
> Xmega Прерывания
Pavel_Bor
сообщение Feb 28 2011, 14:03
Сообщение #1


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

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Здравствуйте!

Захотелось подключить кнопочку к хмеге.
Я так понимаю нужно использовать следующий вектор прерываний. + уровни прерываний.
PORTE_INT0_vect 44 // External Interrupt 0
+ как-то надо обратится к биту кнопки.
Подскажите как это сделать, или где об этом можно почитать.

Сообщение отредактировал Pavel_Bor - Feb 28 2011, 14:04
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bob1
сообщение Mar 1 2011, 16:46
Сообщение #2


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

Группа: Свой
Сообщений: 82
Регистрация: 17-09-06
Пользователь №: 20 471



Цитата(Pavel_Bor @ Feb 28 2011, 19:03) *
Здравствуйте!

Захотелось подключить кнопочку к хмеге.
Я так понимаю нужно использовать следующий вектор прерываний. + уровни прерываний.
PORTE_INT0_vect 44 // External Interrupt 0
+ как-то надо обратится к биту кнопки.
Подскажите как это сделать, или где об этом можно почитать.

Про xмегу в инете инфы мало можно сказать нету. Вся почти на сайте производителя. Написана на Си для каждого модуля.
Кнопку лучше здесь подсоединить по другому. Кнопку к любому выводу. Вывод к каналу событий. В канале событий включить цифровой фильтр(он будет гасить дребезг) . Ну а дальше можно сделать обычное прерывание.......
Go to the top of the page
 
+Quote Post
Pavel_Bor
сообщение Mar 2 2011, 08:00
Сообщение #3


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

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Цитата(bob1 @ Mar 1 2011, 19:46) *
Про xмегу в инете инфы мало можно сказать нету. Вся почти на сайте производителя. Написана на Си для каждого модуля.
Кнопку лучше здесь подсоединить по другому. Кнопку к любому выводу. Вывод к каналу событий. В канале событий включить цифровой фильтр(он будет гасить дребезг) . Ну а дальше можно сделать обычное прерывание.......


Можно ли обойтись одной кнопкой без запуска захвата входа одним из модулей таймеров/счетчиков?
Например здесь:
AVR1001
-->4.1 Захват входа

Может у Вас есть какой-нибудь пример?

Сообщение отредактировал Pavel_Bor - Mar 2 2011, 13:23
Go to the top of the page
 
+Quote Post
bob1
сообщение Mar 3 2011, 05:05
Сообщение #4


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

Группа: Свой
Сообщений: 82
Регистрация: 17-09-06
Пользователь №: 20 471



Цитата(Pavel_Bor @ Mar 2 2011, 13:00) *
Можно ли обойтись одной кнопкой без запуска захвата входа одним из модулей таймеров/счетчиков?
Например здесь:
AVR1001
-->4.1 Захват входа

Может у Вас есть какой-нибудь пример?

Какую задачу хотите решить??? По нажатию кнопки , что будет срабатывать и на какой частоте работает ядро??

Цитата(_Артём_ @ Mar 2 2011, 18:33) *
Время дребезга - это миллисекунды, а не несколько циклов (на 32 МГц - меньше 1uc - разница на 3 порядка).

На 32 Мгц скорее всего фильтр работать не будет. Если в "дребезге" будет импульс больше 8/32=0,25мкс , то фильтр его пропустит!!!!
Go to the top of the page
 
+Quote Post
Pavel_Bor
сообщение Mar 3 2011, 07:56
Сообщение #5


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

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Цитата(bob1 @ Mar 3 2011, 08:05) *
Какую задачу хотите решить??? По нажатию кнопки , что будет срабатывать и на какой частоте работает ядро??


Для примера: по нажатию кнопки переключение светодиодов.
А конкретно для задачи - написать какое-то слово на ЖК.
Частота работы ядра 4.608 Мгц

Сообщение отредактировал Pavel_Bor - Mar 3 2011, 07:56
Go to the top of the page
 
+Quote Post
bob1
сообщение Mar 3 2011, 09:09
Сообщение #6


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

Группа: Свой
Сообщений: 82
Регистрация: 17-09-06
Пользователь №: 20 471



Цитата(Pavel_Bor @ Mar 3 2011, 12:56) *
А конкретно для задачи - написать какое-то слово на ЖК.
Частота работы ядра 4.608 Мгц


Кнопка к 2 выводу порта Е.

ISR(PORTE_INT0_vect){
while((PORTE.IN&PIN2_bm)!=PIN2_bm){};//ждем отпускания кнопки
__delay_cycles(F_CPU/10); //время на дребезг
.... здесь выводите на экран или устанавливаете флаг срабатывания кнопки.
};
или
ISR(PORTE_INT0_vect){
PORTE.INTCTRL =0; //запрещает прерывания
.... здесь выводите на экран или устанавливаете флаг срабатывания кнопки.
};

void main (void)
{
PORTE.INTCTRL =(uint8_t)PORT_INT0LVL_LO_gc;
sei();
PORTE.PIN2CTRL=PORT_SRLEN_bm|PORT_ISC_FALLING_gc|PORT_OPC_PULLUP_gc;
while(1);
};

Сообщение отредактировал bob1 - Mar 3 2011, 09:10
Go to the top of the page
 
+Quote Post
Pavel_Bor
сообщение Mar 3 2011, 09:18
Сообщение #7


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

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Спасибо.
После того как кнопка отпущена происходит задержка, может надо еще раз проверить?
Код по прерываниям, без использования захвата событий.
Флаг и разрешение прерывания по порту тоже надо устанавливать?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pavel_Bor   Xmega Прерывания   Feb 28 2011, 14:03
- - нечитатель   Цитата(Pavel_Bor @ Feb 28 2011, 17:03) по...   Feb 28 2011, 15:14
|- - Pavel_Bor   не могу найти про хмегу..   Mar 1 2011, 09:30
|- - _Артём_   Цитата(bob1 @ Mar 1 2011, 18:46) Про xмег...   Mar 1 2011, 18:44
|- - bob1   Цитата(Pavel_Bor @ Mar 3 2011, 14:18) Спа...   Mar 3 2011, 10:31
|- - Pavel_Bor   а как изменяется код если с событием?   Mar 3 2011, 10:49
|- - bob1   Цитата(Pavel_Bor @ Mar 3 2011, 15:49) а к...   Mar 3 2011, 17:49
||- - Pavel_Bor   У меня cod vision ругается на строку ISR(PORTE_IN...   Mar 4 2011, 08:37
|- - Pavel_Bor   Код//Допустим вешаю я две кнопки на порт Е 6 и 7 ...   Mar 14 2011, 12:31
|- - _Артём_   Цитата(Pavel_Bor @ Mar 14 2011, 14:31) Ко...   Mar 14 2011, 16:46
|- - Pavel_Bor   Цитата(_Артём_ @ Mar 14 2011, 19:46) Може...   Mar 17 2011, 14:15
|- - _Артём_   Цитата(Pavel_Bor @ Mar 17 2011, 16:15) Cт...   Mar 17 2011, 16:16
- - bob1   Вот выдержка : В каждом канале событий имеется циф...   Mar 1 2011, 19:40
|- - _Артём_   Цитата(bob1 @ Mar 1 2011, 21:40) Вот выде...   Mar 2 2011, 13:33
- - KKV2003   Э... А конденсаторы параллельно кнопочке уже отмен...   Mar 3 2011, 10:29


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 02:12
Рейтинг@Mail.ru


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