quote:以下是引用gaolegao在2008-06-30 16:58:36的发言:
如果用中断调用PID,中断的时间和PID中的采样时间怎样匹配,不是很理解这个?请指教/
因为受时间中断的个数,即定时参数大小的限制(最大255ms),中断时间不一定等于采样时间。
如果只有1路PID,且采样时间小于255ms,完全可以将中断时间设为采样时间。但有多路PID且采样时间不一致、或者采样时间大于255ms就不行了。一般常用的方法就是确定一个时基,再对中断计数,时基*计数为采样时间。
比如采样周期100ms,可以直接将中断时间设为100,每中断一次就执行一次PID指令,也可以将中断时间设为10ms,每中断10次才执行一次PID指令。
如果你注意过PID向导生成的符号表,里面有 PIDx_D_Counter参数,这个就是对中断计数的,计数值为 采样时间/中断时间 时,就执行一次PID,然后将计数值清零