麻烦各位了,我没说清楚,我贴上原程序,请各位指教,谢谢您们
unsigned int pulse_fr_proces() //中断0,1脉冲数*AD系数 再+
{
unsigned int ch1_fr,ch2_fr,ch_fr_all;
unsigned long ch1_data,ch2_data;
ch1_data = ch1_num * GET_ADC_RESULT(0xC0); //
ch1_fr = (unsigned int)(ch1_data * 5 / motor_coef) ; //
ch2_data = ch2_num * GET_ADC_RESULT(0xC1); //
ch2_fr = (unsigned int)(ch2_data * 5 / motor_coef) ;
ch_fr_all = ch1_fr + ch2_fr; //总数
if ( ch_fr_all>1800) ch_fr_all=1800;
return ch_fr_all;
}
从程序运行看,ch_fr_all 数值输入过大会溢出,又从零开始运行 |