24位AD数据处理送显问题

2020-02-05 09:17发布

如发帖位置不对请老大指正。
各位好,现调试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[0]=(uchar)(cct/10000%10);

dis_buff[1]=(uchar)(cct/1000%10);

dis_buff[2]=(uchar)(cct/100%10);

dis_buff[3]=(uchar)(cct/10%10);

dis_buff[4]=(uchar)(cct%10);



write_com(0xC7);

write_date(dis_buff[0]+0x30);

write_date('.');

write_date(dis_buff[1]+0x30);

write_date(dis_buff[2]+0x30);

write_date(dis_buff[3]+0x30);

write_date(dis_buff[4]+0x30);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
farrtone
1楼-- · 2020-02-06 07:42
 精彩回答 2  元偷偷看……
asdf1776
2楼-- · 2020-02-06 11:51
farrtone 发表于 2012-4-23 15:19
是的,但我要将其送显

不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED

直接把AD值赋给P2,看LED的闪烁就知道哪一位开始不稳定了

uint adc_value = ADCH<<8+ADCL;
//其他操作
p2 = adc_value;

一句话搞定
farrtone
3楼-- · 2020-02-06 12:29
asdf1776 发表于 2012-4-23 15:24
不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED

直接把AD值赋给 ...

可以讲AD值,0xFFFFFF通过P0 P1 P2口接LED灯看其稳定性
但我这里不只是要看稳定性,最终还要把稳定的数全部送显,还要做软件补偿。
多谢!
zfzdhz_2012
4楼-- · 2020-02-06 16:12
asdf1776 发表于 2012-4-23 15:24
不明白怎么搞这么复杂,我一般调试时用的淘宝上买的30块钱的最小系统板,P2口接了8个LED

直接把AD值赋给 ...

好思路。
但当AD值跳的很快呢?
一直亮?
呵呵
huangdog
5楼-- · 2020-02-06 22:04
这么高位数的AD出来送显示,貌似要经过滤波处理才有意义。试试卡尔曼滤波出来前20位稳不稳
asdf1776
6楼-- · 2020-02-07 02:29
 精彩回答 2  元偷偷看……

一周热门 更多>