first draft of rising edge interrupt on pinA4. Does not comile yet!

redesign_interrupts
polymurph 3 years ago
parent e311800503
commit 7049c6f5b0

@ -6,10 +6,56 @@
#include "timer.h"
#include "i2c.h"
#include "hardwareDescription.h"
void setup();
void EXTI3_IRQHandler(void)
{
if((EXTI->PR1 & EXTI_PR1_PIF4) != 0) {
pinToggle(pinB3);
// clear flag
EXTI->PR1 |= EXTI_PR1_PIF4;
}
}
int main(int argc, char *argv[])
{
setup();
pinConfig(pinB4, input, def_stage, pullUp, def_speed);
// enable interrupt
NVIC_EnableIRQ(EXTI4_IRQn);
// Connect
RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN;
SYSCFG->EXTICR[0] &= ~SYSCFG_EXTICR1_EXTI4;
SYSCFG->EXTICR[0] |= SYSCFG_EXTICR1_EXTI4_PA;
// rising trigger selection
EXTI->RTSR1 |= EXTI_RTSR1_RT4;
// Interrupt mask register
EXTI->IMR1 |= EXTI_IMR1_IM4;
while(1);
/*
while(1)
{
delayMs(100);
pinToggle(pinB3);
delayMs(100);
}
*/
return 1;
}
void setup()
{
uint8_t i = 0;
delayInitMs(8000000, 1000); // Clock Freq and Divider for ARM library
@ -40,15 +86,6 @@ int main(int argc, char *argv[])
}
pinWrite(pinB3,0);
while(1)
{
delayMs(100);
pinToggle(pinB3);
delayMs(100);
}
return 1;
}

Loading…
Cancel
Save