24位AD数据处理送显问题
如发帖位置不对请老大指正。各位好,现调试AD7731 24位AD芯片g_ad1=ReadAd7731ConverData();均为long int类型变量
现想把g_ad1取20位数据,然后送显给LCD1602
例如显示为1.111111(之前能显示到1.1111,基本稳定),可能在10微伏或微伏数据就已经不稳定,但我想看看到底是哪位开始不稳定。
自己试验了想用浮点型处理,但是不然运算%运算
我现在实现了g_ad1取16位数据送显,并已成功,但要如何取20位数据送显,请前辈们给帮帮忙。最好给个例子。谢谢了。
以下是我g_ad1取16位数据送显函数:
g_ad1=ReadAd7731ConverData();//读取AD转换结果
cct=(((g_ad1 >>8)*100)/256)+351;//取16位数据,256为满量程电压放大100倍
//cct为long int 类型
dis_buff=(uchar)(cct/10000%10);
dis_buff=(uchar)(cct/1000%10);
dis_buff=(uchar)(cct/100%10);
dis_buff=(uchar)(cct/10%10);
dis_buff=(uchar)(cct%10);
write_com(0xC7);
write_date(dis_buff+0x30);
write_date('.');
write_date(dis_buff+0x30);
write_date(dis_buff+0x30);
write_date(dis_buff+0x30);
write_date(dis_buff+0x30); 菜鸟路过 很想帮楼主
可惜看不懂C~~~~~~~~~ 嵌入式处理过程一般建议使用整型数据,在输出端再加入小数点,单位等信息
楼主直接查看十进制数据就得了
想不通看个数据精度,浮点怎么弄出来的 楼上,首先能读出20位数据,但我要对其进行处理,并送显,主要是送显的时候怎么把全部数据都取出来、 问题解决,将低位单独取出,单独处理即可。 直接观察AD值才对吧 asdf1776 发表于 2012-4-23 15:14 static/image/common/back.gif
直接观察AD值才对吧
是的,但我要将其送显 farrtone 发表于 2012-4-23 15:19 static/image/common/back.gif
是的,但我要将其送显
不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED
直接把AD值赋给P2,看LED的闪烁就知道哪一位开始不稳定了
uint adc_value = ADCH<<8+ADCL;
//其他操作
p2 = adc_value;
一句话搞定 asdf1776 发表于 2012-4-23 15:24 static/image/common/back.gif
不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED
直接把AD值赋给 ...
可以讲AD值,0xFFFFFF通过P0 P1 P2口接LED灯看其稳定性
但我这里不只是要看稳定性,最终还要把稳定的数全部送显,还要做软件补偿。
多谢!{:smile:} asdf1776 发表于 2012-4-23 15:24 static/image/common/back.gif
不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED
直接把AD值赋给 ...
好思路。
但当AD值跳的很快呢?
一直亮?
呵呵 这么高位数的AD出来送显示,貌似要经过滤波处理才有意义。试试卡尔曼滤波出来前20位稳不稳 zfzdhz_2012 发表于 2012-5-24 20:15 static/image/common/back.gif
好思路。
但当AD值跳的很快呢?
一直亮?
广大电工都知道加delay()吧 asdf1776 发表于 2012-5-24 23:34 static/image/common/back.gif
广大电工都知道加delay()吧
{:smile:}
页:
[1]