You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/libraries/examples/pin_interrupt/main.c

69 lines
1.1 KiB

#include "delay.h"
#include "pin.h"
#include "deviceSetup.h"
#include "interrupt.h"
#include "timer.h"
void blinkiTask()
{
//pinToggle(pinB3);
}
void EXTI4_15_IRQHandler(void)
{
if(EXTI->PR & EXTI_PR_PR4)
{
EXTI->PR |= EXTI_PR_PR4;
pinToggle(pinB3);
}
}
void pinB4IntSetup()
{
SYSCFG->EXTICR[1] |= SYSCFG_EXTICR2_EXTI4_PB;
EXTI->FTSR |= EXTI_FTSR_TR4;
EXTI->RTSR |= EXTI_FTSR_TR4;
EXTI->IMR |= EXTI_IMR_IM4;
NVIC_EnableIRQ(EXTI4_15_IRQn);
NVIC_SetPriority(EXTI4_15_IRQn,1);
}
void declareInterrupts()
{
/*
timerInitCounter(timer_2,(8E6/40E3)-1, 5000-1, upCounting);
timerEnableInterrupt(timer_2,TIM2_UPDATE);
timerStart(timer_2);
intInit(TIM2_UPDATE, blinkiTask, 1);
intEnable(TIM2_UPDATE);
*/
intDisableGlobal();
pinB4IntSetup();
intEnableGlobal();
}
int main(int argc, char *argv[])
{
uint8_t i = 0;
pinConfig(pinA0, input, def_stage, pullDown, def_speed);
pinConfig(pinB3, output, pushPull, def_res, def_speed);
pinWrite(pinB3, 0);
pinConfig(pinB4, input, floating, none, def_speed);
declareInterrupts();
while(1);
return 1;
}