Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по векторному прерыванию в STR91xЗ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Vladimir_T
Здравствуйте, помогите с примером для рыботы с прерываниями от входов портов.
Настроил порт на вход (при программном опросе входов вся программа отрабатывает), но векторное не отрабатывается и что только не пробовал.
HardJoker
Цитата(Vladimir_T @ Jul 2 2007, 10:33) *
Здравствуйте, помогите с примером для рыботы с прерываниями от входов портов.
Настроил порт на вход (при программном опросе входов вся программа отрабатывает), но векторное не отрабатывается и что только не пробовал.


У меня сделано так (STR912, IAR WB4.40):

void SCU_Configuration(void)
{

//......................

// Enable VIC clock
SCU_AHBPeriphClockConfig(__VIC, ENABLE);
VIC_DeInit();

// Enable WIU clock
SCU_APBPeriphClockConfig(__WIU, ENABLE);
WIU_DeInit();

//......................
}


void VIC_Configuration(void)
{
//......................

// Configure the External interrupt group 0 priority
VIC_Config(EXTIT0_ITLine, VIC_IRQ, 0);
// Enable the External interrupt group 0 priority -> GPIO3.2
VIC_ITCmd(EXTIT0_ITLine, ENABLE);

// Configure the External interrupt group 3 priority -> GPIO6.7
VIC_Config(EXTIT2_ITLine, VIC_IRQ, 1);
// Enable the External interrupt group 3
VIC_ITCmd(EXTIT2_ITLine, ENABLE);

//......................
}

void WIU_Configuration(void)
{
//......................

// Clear the WIU line 2 pending bit -> GPIO3.2
WIU_ClearITPendingBit(WIU_Line2);

WIU_InitStructure.WIU_Mode = WIU_Mode_Interrupt;
WIU_InitStructure.WIU_Line = WIU_Line2;
WIU_InitStructure.WIU_TriggerEdge = WIU_FallingEdge;
WIU_Init(&WIU_InitStructure);

// Select WIU line 2 as VIC1.10 interrupt source
SCU_WakeUpLineConfig(2);

// Clear the WIU line 23 pending bit -> GPIO6.7
WIU_ClearITPendingBit(WIU_Line23);

WIU_InitStructure.WIU_Mode = WIU_Mode_Interrupt;
WIU_InitStructure.WIU_Line = WIU_Line23;
WIU_InitStructure.WIU_TriggerEdge = WIU_FallingEdge;

// Select WIU line 23 as VIC1.12 interrupt source
SCU_WakeUpLineConfig(23);

//......................
}

void GPIO_Configuration(void)
{
//......................

//GPIO3.2 - pin input Def - "EXT_INTR_i"
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable;
GPIO_Init (GPIO3, &GPIO_InitStructure);

//GPIO6.7 - pin input Def - "EXT_INTR_j"
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Type = GPIO_Type_PushPull;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Disable;
GPIO_Init (GPIO6, &GPIO_InitStructure);

//......................
}
Vladimir_T
Спасибо за пример. Недопонимал значение WUI, как источника для линии прерывания контроллера VIC.
HardJoker
Цитата(Vladimir_T @ Jul 2 2007, 11:14) *
Спасибо за пример. Недопонимал значение WUI, как источника для линии прерывания контроллера VIC.


Структура WUI хорошо показана на стр.102 документа UM0216 (Reference manual)
Vladimir_T
Подскажите пожалуйста.
Какая может быть причина если не работает векторное прерывание от входа на STR912. Настроил периферию и тактирование как вы подсказали, настрол VIC. Программный опрос входа P7.4 работает, программное прерывание от этого входа работает, а вот прерывания непосредственно от этого входа не идет! ?
HardJoker
Цитата(Vladimir_T @ Jul 6 2007, 17:52) *
Подскажите пожалуйста.
Какая может быть причина если не работает векторное прерывание от входа на STR912. Настроил периферию и тактирование как вы подсказали, настрол VIC. Программный опрос входа P7.4 работает, программное прерывание от этого входа работает, а вот прерывания непосредственно от этого входа не идет! ?


Проверить работоспособность внешних прерываний по другим линиям. Если программное прерывание проходит, возможно, некорректно настроен сам вход GPIO7.4
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.