uint read_flash1,ad_cos,tc;
T2SC1=0x44; //上升沿触发 interrupt 8 void time2_isr(void){ unsigned int ad_dianliu,ad_t; T2SC1_CH1IE=0; ad_t=T2CH1; ad_dianliu=read_flash1; if(ad_t>ad_dianliu) //T2CH1大于上次记录数时 read_flash1=ad_t-ad_dianliu; //T2CH1-上次数值得到本次记录数 else read_flash1=0xffff-ad_dianliu+ad_t; //T2CH1小于上次记录值时,说明T2CH1溢出重新计数
ad_cos=(read_flash1+tc)/2; //两次采样值平均 tc=ad_cos; T2SC1_CH1F=0; T2SC1_CH1IE=1; }
我这个程序哪里错了,捕捉的数值AD_COS乱跳..我用的是HC908JL8的,采用内部时钟2M.捕捉的实际频率120HZ左右.
[此贴子已经被作者于2007-4-3 15:39:11编辑过] |