Цитата(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);
//......................
}