From 242cceb36cf64cc5ad5630faa89a5f64525a3f1c Mon Sep 17 00:00:00 2001 From: polymurph <eddyed.k@gmail.com> Date: Mon, 17 Oct 2022 20:19:48 +0200 Subject: [PATCH] working on making PA3 LED toggle on PA1 Rising edge interrupt --- main.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index 4d16077..9837eb8 100644 --- a/main.c +++ b/main.c @@ -6,41 +6,47 @@ #include "timer.h" #include "i2c.h" +#include "stm32f042x6.h" #include "hardwareDescription.h" void setup(); -void EXTI3_IRQHandler(void) +void EXTI1_IRQHandler(void) { - if((EXTI->PR1 & EXTI_PR1_PIF4) != 0) { + if((EXTI->PR & EXTI_PR_PIF1) != 0) { pinToggle(pinB3); // clear flag - EXTI->PR1 |= EXTI_PR1_PIF4; + EXTI->PR |= EXTI_PR_PIF1; } } int main(int argc, char *argv[]) { setup(); - - pinConfig(pinB4, input, def_stage, pullUp, def_speed); + + // https://controllerstech.com/external-interrupt-using-registers/ + + pinConfig(pinA1, input, def_stage, pullUp, def_speed); // enable interrupt - NVIC_EnableIRQ(EXTI4_IRQn); + //NVIC_EnableIRQ(EXTI0_1_IRQn); // Connect - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; - SYSCFG->EXTICR[0] &= ~SYSCFG_EXTICR1_EXTI4; - SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI4_PA; + RCC->APB2ENR |= RCC_APB2ENR_SYSCFGCOMPEN; + SYSCFG->EXTICR[0] &= ~SYSCFG_EXTICR1_EXTI0; + SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI0_PA; // rising trigger selection - EXTI->RTSR1 |= EXTI_RTSR1_RT4; + EXTI->RTSR |= EXTI_RTSR_RT1; // Interrupt mask register - EXTI->IMR1 |= EXTI_IMR1_IM4; + EXTI->IMR |= EXTI_IMR_IM1; + + NVIC_SetPriority (EXTI1__IRQn, 1); + NVIC_EnableIRQ(EXTI1); while(1); /* @@ -79,7 +85,7 @@ void setup() //blinks 10 times to indicate the sicsessfull init if the device - for(i = 0 ; i < 2 ; i++) { + for(i = 0 ; i < 10 ; i++) { delayMs(100); pinToggle(pinB3); delayMs(100);