问题已经解决
void timer2_config(unsigned int time,unsigned int period)
{
timer_parameter_struct timer_parameter;
rcu_periph_clock_enable(RCU_TIMER2);
timer_deinit(TIMER2);
timer_parameter.prescaler = 83;
timer_parameter.alignedmode = TIMER_COUNTER_EDGE;
timer_parameter.counterdirection = TIMER_INT_UP;
timer_parameter.period = 10000;
timer_parameter.repetitioncounter = 0;
timer_parameter.clockdivision = TIMER_CKDIV_DIV2;
timer_init(TIMER2,&timer_parameter);
timer_counter_value_config(TIMER2,0);
timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);
timer_interrupt_enable(TIMER2,TIMER_INT_UP);
nvic_irq_enable(TIMER2_IRQn,0,2);
timer_enable(TIMER2);
timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);
}
//void TIMER0_BRK_UP_TRG_COM_IRQHandler(void)
void TIMER2_IRQHandler(void) {
if(SET == timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_UP)){
ix++;
if(ix<50)
gpio_bit_reset(GPIOB, GPIO_PIN_1);
else
{gpio_bit_set(GPIOB, GPIO_PIN_1); if(ix>100) {ix=0;} }
timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);
}
}
void timer0_config(unsigned int time,unsigned int period)
{
timer_parameter_struct timer_parameter;
rcu_periph_clock_enable(RCU_TIMER0);
timer_deinit(TIMER0);
timer_parameter.prescaler = 83;
timer_parameter.alignedmode = TIMER_COUNTER_EDGE;
timer_parameter.counterdirection = TIMER_INT_UP;
timer_parameter.period = 1000;
timer_parameter.repetitioncounter = 0;
timer_parameter.clockdivision = TIMER_CKDIV_DIV2;
timer_init(TIMER0,&timer_parameter);
timer_counter_value_config(TIMER0,0);
timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);
timer_interrupt_enable(TIMER0,TIMER_INT_UP);
nvic_irq_enable(TIMER0_BRK_UP_TRG_COM_IRQn,0,2);
timer_enable(TIMER0);
timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);
}
//void TIMER0_BRK_UP_TRG_COM_IRQHandler(void)
//void TIMER0_IRQHandler(void)
void TIMER0_BRK_UP_TRG_COM_IRQHandler(void)
{
if(SET == timer_interrupt_flag_get(TIMER0, TIMER_INT_FLAG_UP)){
ix++;
if(ix<50)
gpio_bit_reset(GPIOB, GPIO_PIN_1);
else
{gpio_bit_set(GPIOB, GPIO_PIN_1); if(ix>100) {ix=0;} }
timer_interrupt_flag_clear(TIMER0, TIMER_INT_FLAG_UP);
}
}
|