void testInitGPIOInterrupt( void )
{
// PC 13
uint8_t pinNumber;
uint32_t temp;
pinNumber = 13;
RCC->AHB2ENR |= ( 1 << RCC_AHB2ENR_GPIOCEN_Pos );
RCC->APB2ENR |= ( 1 << RCC_APB2RSTR_SYSCFGRST_Pos );
SYSCFG->EXTICR[(pinNumber/4)] &= ~(0xF << ((pinNumber % 4) * 4));
SYSCFG->EXTICR[(pinNumber/4)] |= (0x2 << ((pinNumber % 4) * 4));
//enable the exti interrupt delivery using IMR Interrupt mask register 1
EXTI->IMR1 |= ( 1 << pinNumber );
// Enable the 'rising edge' trigger
EXTI->RTSR1 |= ( 1 << pinNumber );
// Disable the 'falling edge' trigger
EXTI->FTSR1 &= ~( 1 << pinNumber );
GPIOC->MODER &= ~( 0x3 << ( pinNumber*2 ) );
GPIOC->PUPDR &= ~( 0x3 << ( pinNumber*2 ) );
GPIOC->PUPDR |= ( 0x0 << ( pinNumber*2 ) );
// Enable IRQ
NVIC_SetPriority( EXTI15_10_IRQn, 6 );
NVIC_EnableIRQ ( EXTI15_10_IRQn );
}
I will try these suggestions.
FreeRTOSConfig.h (5.2 KB)