Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Обработка прерываний в LPC1114

Непрочитано 06.12.2011, 23:04  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Обработка прерываний в LPC1114

Добрый вечер. Вот решил разобраться в ARM и возник вопрос, как обработать прерывание? Использую среду Code red.
Настраиваю так:
Код:
    GPIOInit();
    GPIOSetDir(LED_PORT, LED_BIT, 1);
    GPIOSetDir(BUTTON_PORT, BUTTON_BIT, 0);
    LPC_IOCON-›PIO3_1 =32;         //подтяжка к 0 и включение гистерезиса
    GPIOSetInterrupt(BUTTON_PORT,BUTTON_BIT,0,0,0);
    GPIOIntEnable(BUTTON_PORT,BUTTON_BIT);
В справке не нашел по прерываниям ничего...
Буду благодарен за помощь
Реклама:

Последний раз редактировалось swat24; 06.12.2011 в 23:06.
swat24 вне форума  
Сказали "Спасибо" swat24
warel (28.06.2019)
Непрочитано 06.12.2011, 23:13  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

А сам обработчик прерываний где???
st_1 вне форума  
Сказали "Спасибо" st_1
warel (28.06.2019)
Непрочитано 06.12.2011, 23:21  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

Я это и спрашивал, как его писать? Для пика я использовал Mikropascal, mikroc, там это выглядело так: void interrupt(void); дальше обработка
а как тут?

В Keil как я понял пишется так:
Код:
__irq void Timer0ISR (void) //от чего прерывание
 {
    //выполение нужных действий
    //сброс флага прерываний
 return;
 }
В Code red такое не годится... Как такое написать в Code red ?

Последний раз редактировалось swat24; 07.12.2011 в 00:28.
swat24 вне форума  
Сказали "Спасибо" swat24
warel (28.06.2019)
Непрочитано 08.12.2011, 01:03  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

Такая обработка прерывания не работает:
Код:
void PIOINT3_IRQHandler(void)
{
	flag=1;
        GPIOIntClear(BUTTON_PORT,BUTTON_BIT);
}
Настройка:
Код:
    
    GPIOSetDir(LED_PORT, LED_BIT, 1);
    GPIOSetDir(BUTTON_PORT, BUTTON_BIT, 0);
    LPC_IOCON-›PIO3_1 =32;
    GPIOSetInterrupt(BUTTON_PORT,BUTTON_BIT,0,0,0);
    GPIOIntEnable(BUTTON_PORT,BUTTON_BIT);
что не так?
swat24 вне форума  
Сказали "Спасибо" swat24
warel (28.06.2019)
Непрочитано 08.12.2011, 02:42  
kison
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

В 1114 имеется контроллер прерываний. Без его использования прерываний не будет.
Читайте UM - 21.5.2 Nested Vectored Interrupt Controller
kison вне форума  
Сказали "Спасибо" kison
warel (28.06.2019)
Непрочитано 08.12.2011, 11:01  
tanq
Гражданин KAZUS.RUN
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

swat24,
Надо вызвать еще NVIC_EnableIRQ(.....)
и проверить что обработчик прерывания имеет правильное название. При несовпадении названий ошибки компиляции не будет, но и работть то же не будет.
tanq вне форума  
Сказали "Спасибо" tanq
warel (28.06.2019)
Непрочитано 08.12.2011, 20:05  
swat24
Гражданин KAZUS.RUN
 
Регистрация: 16.03.2009
Адрес: Украина, Харьков
Сообщений: 762
Сказал спасибо: 108
Сказали Спасибо 67 раз(а) в 67 сообщении(ях)
swat24 на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

Вроде немного разобрался, это работает:
Код:
void PIOINT3_IRQHandler(void){              
	flag=1;
	GPIOIntClear(BUTTON_PORT,BUTTON_BIT);
	//GPIOSetValue(LED_PORT,LED_BIT,LED_ON);
}

int main (void)
{	GPIOInit();
    GPIOSetDir(LED_PORT, LED_BIT, 1);
    GPIOSetDir(BUTTON_PORT, BUTTON_BIT, 0);
    LPC_IOCON-›PIO3_1 =8;
    GPIOSetInterrupt(BUTTON_PORT,BUTTON_BIT,1,1,0);
    GPIOIntEnable(BUTTON_PORT,BUTTON_BIT);
    GPIOSetValue(LED_PORT,LED_BIT,LED_OFF);
    NVIC_EnableIRQ(28);              // прерывание по порту 3
А для включения нескольких прерываний как писать?NVIC_EnableIRQ(); по порядку друг за другом? у меня так не заработало... вообще не одно прерывание тогда не пашит...

Последний раз редактировалось swat24; 08.12.2011 в 21:42.
swat24 вне форума  
Сказали "Спасибо" swat24
warel (28.06.2019)
Непрочитано 09.12.2011, 01:11  
tanq
Гражданин KAZUS.RUN
 
Регистрация: 12.10.2009
Сообщений: 576
Сказал спасибо: 30
Сказали Спасибо 138 раз(а) в 110 сообщении(ях)
tanq на пути к лучшему
По умолчанию Re: Обработка прерываний в LPC1114

swat24,
Во-первых, я не рекомендую пользовать бибиотечные функции для работы с пинами. Они очень медленные.
Прерывания включаются по-отдельности. И еще для них есть NVIC_SetPriority и NVIC_SetPriorityGrouping (эта вызывается один раз).
Вместо числа 28 определена соответствующая константа, надо ее использовать.
tanq вне форума  
Сказали "Спасибо" tanq
warel (28.06.2019)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отключить SWD в LPC1114 201 ? Cybermaker Микроконтроллеры, АЦП, память и т.д 2 27.07.2011 11:25
Прерывания в LPC1114 XRuZzz Микроконтроллеры, АЦП, память и т.д 1 21.01.2011 14:18
Как оживить LPC1114 XRuZzz Микроконтроллеры, АЦП, память и т.д 9 11.01.2011 16:35


Часовой пояс GMT +4, время: 14:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.