This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Str9 Interrupt Handling

Hello, I am a complete beginner when it comes to keil, but I want to learn. However I stumble upon different stuff and get stuck, so I thought it was about time to ask for some help.

I work on MCBSTR9 (ARM STR912FW44) and I would like to make something simple: when I press one interrupt button on the board to light up some of the LEDs and when I press the other interrupt button to light some of the other LEDs.

From what I read I can use the interrupt handlers and all I would have to do is write code in the following function:

void WIU_IRQHandler(void)
{

}

This function is found in the 91x_it.c file.

I found these functions for handling interrupts:
VIC_DeInit = Deinitializes the VIC module registers to their default reset values.
VIC_GetIRQStatus = Gets the status of interrupts after IRQ masking.
VIC_GetFIQStatus = Gets the status of interrupts after FIQ masking.
VIC_GetSourceITStatus = Gets the status of the source interrupts before masking.
VIC_ITCmd = Enables or disables the interrupt request lines.
VIC_SWITConfig = Generates a software interrupt for the specific source interrupt before
interrupt masking.
VIC_ProtectionCmd = Enables or disables the register access protection.
VIC_GetCurrentISRAdd = Gets the address of the currently active ISR.
VIC_GetISRVectAdd = Gets the ISR vector addresses.
VIC_Config = Configures the ISR, the line, the mode and the priority for each
interrupt.

WIU_Init = Initializes the WIU according to the specified parameters in the
WIU_InitTypeDef structure
WIU_DeInit = Deinitializes the WIU registers to their default reset values
WIU_StructInit = Fills each WIU_InitStruct member with its reset value.
WIU_Cmd = Enables or disables the WIU peripheral.
WIU_GetITStatus = Checks whether the specified WIU line is asserted or not
WIU_ClearITPendingBit = Clears the pending bit of the selected WIU line
WIU_GenerateSWInterrupt = Generates a Software interrupt for the specified line
WIU_GetFlagStatus = Checks whether the specified WIU line flag is set or not.
WIU_ClearFlag = Clears the WIU line pending flag.

I think I managed to configure them, however, I can't figure out how to use these functions in order to find out how to get the specific interrupt I want (pressing one of the 2 buttons on the board). If anyone could also point out how to do this in the simulator I would be really grateful.

Have a great day!

0