void TIM6_Init(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 13;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);
TIM6->PSC = 72*2 - 1; //
TIM6->ARR = 25-1; // 10 000 Hz
TIM6->CR1 = 0x0004 + 0x0001; // URS = 1 CEN = 1
TIM6->DIER = 0x0001; //
}
static uchar TIM6_Flag=0; static uchar TIM6_Count=0; void TIM6_IRQHandler(void) { TIM6_Count++; if(TIM6_Count==4) { // if(TIM6_Flag==0) // { // TIM6_Flag=1 ; // LED1(OFF) ; // } // else // { // LED1(ON); // TIM6_Flag=0; // } TIM6_Count=0; } // LED2_TOGGLE ; TIM6->SR=0x0000;// STEPMOTOR1_STEP; // TIM6->SR=0x0000;// }
注意:进入中断后,要立刻清标志位。否则会出现意外。 |