我采用8通道同时采集,但是我对AD的周期不清楚,是否说是经过一个采集周期以后,AD自动把第二组数存入ADVALUE这个数组?因为要采集5次数据做平均值算法,请问我是得每采集一次就得调用一次这个AD_Getvalue 函数么?还是得在采集完一次后中间设置延时(AD转换周期)等待第一次采集完然后用从数组里读取??
unsign ADvalue[8]; void AD_Getvalue(unsigned char *AD_value) { while(!ATD0STAT2L_CCF0); *AD_value = ATD0DR0L; AD_value ++; while(!ATD0STAT2L_CCF1); *AD_value = ATD0DR1L; AD_value ++; while(!ATD0STAT2L_CCF2); *AD_value = ATD0DR2L; AD_value ++; while(!ATD0STAT2L_CCF3); *AD_value = ATD0DR3L; AD_value ++; while(!ATD0STAT2L_CCF4); *AD_value = ATD0DR4L; AD_value ++; while(!ATD0STAT2L_CCF5); *AD_value = ATD0DR5L; AD_value ++; while(!ATD0STAT2L_CCF6); *AD_value = ATD0DR6L; AD_value ++;
while(!ATD0STAT2L_CCF7); *AD_value = ATD0DR7L; AD_value ++; }
void collect(){ *AD_value=AD_value[0]; AD_Getvalue(AD_value); x1[1]=AD_value[0]; x2[1]=AD_value[1]; x3[1]=AD_value[2]; x4[1]=AD_value[3]; x5[1]=AD_value[4]; x6[1]=AD_value[5]; x7[1]=AD_value[6]; x8[1]=AD_value[7]; AD_Getvalue(AD_value); x1[2]=AD_value[0]; x2[2]=AD_value[1]; x3[2]=AD_value[2]; x4[2]=AD_value[3]; x5[2]=AD_value[4];; x6[2]=AD_value[5]; x7[2]=AD_value[6]; x8[2]=AD_value[7]; AD_Getvalue(AD_value); x1[3]=AD_value[0]; x2[3]=AD_value[1]; x3[3]=AD_value[2]; x4[3]=AD_value[3]; x5[3]=AD_value[4]; x6[3]=AD_value[5]; x7[3]=AD_value[6]; x8[3]=AD_value[7]; AD_Getvalue(AD_value); x1[3]=AD_value[0]; x2[3]=AD_value[1]; x3[3]=AD_value[2]; x4[3]=AD_value[3]; x5[3]=AD_value[4]; x6[3]=AD_value[5]; x7[3]=AD_value[6]; x8[3]=AD_value[7]; AD_Getvalue(AD_value); x1[0]=AD_value[0]; x2[0]=AD_value[1]; x3[0]=AD_value[2]; x4[0]=AD_value[3]; x5[0]=AD_value[4]; x6[0]=AD_value[5]; x7[0]=AD_value[6]; x8[0]=AD_value[7]; }
|