有一问题需要补充下:TIME_TCK()函数需要自已添加,他的功能大意是在自整定的1阶段时需要外部定时器计时,这个定时器要跟程序循环周期参数做比较,差值超过5%整定就会失败的。TIME_TCK()函数只要在外面用1ms的定时器就可以了。另外在C原程序中将//tTime = TIME_TCK();去掉注释,我没记错的话应该是两个地方。例如: 
void TIM6_DAC_IRQHandler(void)//1ms中断程序 
{ 
  TIM_ClearFlag(TIM6, TIM_FLAG_Update); 
  if(Time_zzd++>=2147483647) 
    Time_zzd=0; 
} 
在PID程序中添加以下函数: 
static s32 TIME_TCK(void) 
{ 
  return (Time_zzd); 
} 
转载 |