 |
今天贵公司的王工给解答了,非常感谢! 但同时也有个疑问,在这个程序中的数据处理部分,>4096,减4096,<4096,加4096,计算了三轴的合成发现,G值有28G还多,比较怀疑.我的数据处理部分如下:DATA_FORMAT置0x2F,读取三轴数据后,计算平方和,再开方乘以0.4.测试了两块板子,偏置都为0的时候,一块是1.04左右,一块是0.96左右,反转板子,数据的变化趋势也是正确的.但设置16g,最大采到了5G,却可以进10Gtap中断,不知是何原因? for(i=0;i<3;i++) { j =2*i; getdat[i] =((dat[j+1]<<8)|dat[j]); getdat[i] =((getdat[i]>>3)&0x1fff); if(getdat[i]>0x1000) getdat[i]=(0x1000-getdat[i])&0x0fff; tmp=tmp+(getdat[i]*getdat[i]); } tmp=sqrt(tmp); tmp =tmp*4; tmp =tmp/10; knum =tmp/1000; hnum =(tmp%1000)/100; dnum =(tmp%100)/10; num =tmp%10; tmp =(knum<<4)|hnum; UCA0TXBUF =tmp; while(!(IFG2&UCA0TXIFG)); IFG2 &=~UCA0TXIFG; tmp =(dnum<<4)|num; UCA0TXBUF =tmp; while(!(IFG2&UCA0TXIFG)); IFG2 &=~UCA0TXIFG;
|