TIM1设置的应该是50MS触发一次中断,可实际运行效果慢了好多,而且每次进中断时间还不一定 下面是TIM1设置 求大神看看问题在哪
TIM1-CNT的值每次进中断都不一样
[mw_shl_code=c,true]void TIM1_init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
TIM_TimeBaseStructure.TIM_Period = 4999;
TIM_TimeBaseStructure.TIM_Prescaler =(7200-1);
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //从优先级3级
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
TIM_Cmd(TIM1, ENABLE);
// TIM_Cmd(TIM3, ENABLE); //使能TIMx
}
void TIM1_UP_IRQHandler(void)
{
if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET)
LED0=!LED0;
TIM_ClearITPendingBit(TIM1, TIM_FLAG_Update); //清中断
}
[/mw_shl_code]
|