求助 定时器T2 1ms定时只要初始化系统就停止运行,也没报错。
补充,定时器裸跑运行正常。 用了这个定时器中断? 嗯 void TIM2_IRQHandler(void){
rt_interrupt_enter();
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
if(TIM_FLAG==0)
{
TDS_Control_A_SET
TDS_Control_B_CLE
TIM_FLAG=1;
}
else
{
TDS_Control_B_SET
TDS_Control_A_CLE
TIM_FLAG=0;
}
//每一百毫秒采样一次,三路通道分开采样
if(TIME_COUNT==(80+ADC1_TIME*100))
{
ADC1_VAL=Get_Adc(0);
}
if(TIME_COUNT==(90+ADC2_TIME*100))
{
ADC2_VAL=Get_Adc(1);
}
if(TIME_COUNT==(100+ADC3_TIME*100))
{
ADC3_VAL=Get_Adc(3);
}
if(TIME_COUNT==1000)
{
TIME_COUNT=0;
rtgui_server_post_event(&emouse.parent, sizeof(struct rtgui_event_mouse));
}
TIME_COUNT++;
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
}
rt_interrupt_leave();
} 既然每一百毫秒采样一次,那么应该让让100ms发生一次中断,而不是中断100次后采集.
另外确认一下中断频率确实是1ms,防止过快造成一直在中断中. 中断频率确实是1ms,1ms中断是为了改变I\O口电平。I\O口电平需要1ms改变一次。 回复【5楼】kongan
-----------------------------------------------------------------------
同样也存在这个问题,不过我的采样中断频率更快一些,8KHz,只要打开Timer2中断,系统就会一直重启。 回复【6楼】haitao10086
-----------------------------------------------------------------------
问题已经解决 问题是怎么解决的?
页:
[1]