麻煩各位了,我沒說清楚,我貼上原程序,請各位指教,謝謝您們
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 數值輸入過大會溢出,又從零開始運行 |