中级会员
 
- 积分
- 365
- 金钱
- 365
- 注册时间
- 2018-3-21
- 在线时间
- 64 小时
|
2金钱
在运行定时器中断服务函数后,发现时间与我设定的相差太大,我设定的是0.5s运行一次,实际运行的大概在5s,串口信息打印显示也是间隔五秒左右,谁能帮忙解释一下
[mw_shl_code=applescript,true]void TIM3_IT_Init(uint16_t psc,uint16_t arc)
{
//3õê¼»ˉ¶¨ê±Æ÷½á11ìå
TIM_TimeBaseInitTypeDef TIM_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //′ò¿a¶¨ê±Æ÷μÄíaéèê±Öó
//TIM»ù′¡ÅäÖÃ
TIM_InitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_InitStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_InitStructure.TIM_Period=arc;//×Ô¶ˉÖØ×°ÔØÖμ
TIM_InitStructure.TIM_Prescaler=psc; //Ô¤·ÖÆμÖμ
TIM_TimeBaseInit(TIM3,&TIM_InitStructure);
TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//ÔêDí¶¨ê±Æ÷3¸üDÂÖD¶Ïê1Äü
TIM_Cmd(TIM3,ENABLE);//ê1Äü ¶¨ê±Æ÷3
//NVIC configration
NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
//¶¨ê±Æ÷4ÖD¶Ï·tÎñoˉêy
void TIM3_IRQHandler(void)
{
//delay_ms(50);
if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //òç3öÖD¶Ï
{
LED3_ON;
printf("111111\n");
TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //Çå3yÖD¶Ï±ê־λ
}
}
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
SystemInit();
//delay_init(32);
uart_init();
KEY_Init_GPIO();
LED_Init_GPIO();
TIM3_IT_Init((5000-1),(3200-1));
//EXTI_Key();
//int i;
while(1)
{
// LED_ALL_ON();
// delay_ms(50);
// LED_ALL_OFF();
// delay_ms(50);
}
}[/mw_shl_code]
|
|