volatile __no_init __READ_WRITE unsigned long ISER1 @ 0xE000E104;
LCD_INTMSK = (1 << 3); //Enable Vertical compare interrupt
ISER1 |= (1 << 5); //Enable LCD Controller's Interrupt
//Enable LCD Controller
LCD_CTRL = (6 << 1) | (1 << 5) | (1 << 11);
LCD_CTRL |= (1 << 0); //Enable LCD Signals
My ISR
void LCD_IRQHandler(void) <------- execute only once or twice not any further
{
static unsigned int msk = 0;
if (LCD_INTSTAT & (1 << 3)) //if vertical sync interrupt
{
LCD_INTCLR = 0xf;
if(!msk)
{
msk = 1;
FIO5PIN |= KEY_ROW_MASK; //Just toggle the pin to observe the ISR's execution on oscilloscope
}
else
{
msk = 0;
FIO5PIN &= ~KEY_ROW_MASK;//Just toggle the pin to observe the ISR's execution on oscilloscope
}
}
else
{
LCD_INTCLR = 0xf;
}
}
|
int32_t myVar = 1; |