|
|
|
@ -12,7 +12,7 @@
|
|
|
|
|
volatile uint8_t led_on;
|
|
|
|
|
|
|
|
|
|
void setup();
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
void EXTI0_1_IRQHandler(void)
|
|
|
|
|
{
|
|
|
|
|
if(EXTI->PR & EXTI_PR_PIF1) {
|
|
|
|
@ -52,13 +52,15 @@ void risingEdgeInterruptPinA1()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
void interruptLEDtoggleOnTIM1counterCompare()
|
|
|
|
|
{
|
|
|
|
|
//timerInitCounter(timer_2, 0xFFFF, 0, upCounting);
|
|
|
|
|
|
|
|
|
|
// reset timer 2 periperal
|
|
|
|
|
RCC->APB1RSTR |= RCC_APB1RSTR_TIM2RST;
|
|
|
|
|
|
|
|
|
|
//while(RCC->APB1RSTR & RCC_APB1RSTR_TIM2RST);
|
|
|
|
|
|
|
|
|
|
// enable timer 2 peripheral
|
|
|
|
|
RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
|
|
|
|
@ -69,6 +71,8 @@ void interruptLEDtoggleOnTIM1counterCompare()
|
|
|
|
|
// only allow under-/overflow interrupts
|
|
|
|
|
TIM2->CR1 |= TIM_CR1_URS;
|
|
|
|
|
|
|
|
|
|
TIM2->CR1 |= TIM_CR1_DIR;
|
|
|
|
|
|
|
|
|
|
// set clock prescaler
|
|
|
|
|
TIM2->PSC = 0xFFFF;
|
|
|
|
|
|
|
|
|
@ -83,7 +87,8 @@ void interruptLEDtoggleOnTIM1counterCompare()
|
|
|
|
|
|
|
|
|
|
NVIC_SetPriority(TIM2_IRQn,0);
|
|
|
|
|
NVIC_EnableIRQ(TIM2_IRQn);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// timer enable
|
|
|
|
|
TIM2->CR1 |= TIM_CR1_CEN;
|
|
|
|
|
|
|
|
|
|
//timerSart(timer_2);
|
|
|
|
@ -103,8 +108,10 @@ void interruptLEDtoggleOnTIM1counterCompare()
|
|
|
|
|
void TIM2_IRQHandler(void)
|
|
|
|
|
{
|
|
|
|
|
if(TIM2->SR & TIM_SR_UIF) {
|
|
|
|
|
|
|
|
|
|
// clear flag
|
|
|
|
|
TIM2->SR &= ~TIM_SR_UIF;
|
|
|
|
|
|
|
|
|
|
//pinWrite(pinB3,1);
|
|
|
|
|
pinToggle(pinB3);
|
|
|
|
|
}
|
|
|
|
@ -115,7 +122,6 @@ int main(int argc, char *argv[])
|
|
|
|
|
{
|
|
|
|
|
setup();
|
|
|
|
|
|
|
|
|
|
//risingEdgeInterruptPinA1();
|
|
|
|
|
interruptLEDtoggleOnTIM1counterCompare();
|
|
|
|
|
|
|
|
|
|
while(1);
|
|
|
|
|