普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 1939|回复: 1

AD转换-对电位器读取出来的值得变量操作会使值变未知值的问题

[复制链接]

1

主题

1

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2021-12-10 16:17:34 | 显示全部楼层 |阅读模式
本帖最后由 888hhh 于 2021-12-10 19:45 编辑

void datapros(){
u16 temp,t;       
static u8 i;       
if(i==50)       
{       
i=0;       
temp = Read_AD_Data(0x94);                //   AIN0 电位器       
}
//        temp*=2;
disp[0]=smgduan[temp/1000];//千位        disp[1]=smgduan[temp%1000/100];//百位        disp[2]=smgduan[temp%1000%100/10];//个位        disp[3]=smgduan[temp%1000%100%10];        }
//问题:当把temp*=2;注释掉,数码管显示正常。把temp*=2;取消注释,数码管乱显示,说明temp并不是乘了2

//如果改成下面这样则正常
void datapros()
{
u16 temp,t;        static u8 i;
if(i==50)
{
i=0;       
temp = Read_AD_Data(0x94);                //   AIN0 电位器
}
t=temp;
t*=2;
disp[0]=smgduan[t/1000];//千位        disp[1]=smgduan[t%1000/100];//百位        disp[2]=smgduan[t%1000%100/10];//个位        disp[3]=smgduan[t%1000%100%10];        }
//问题:当把temp赋值给另一个变量,对另一个变量操作则数码管显示正常。

//有没有大佬知道为什么,我感觉是硬件上的道理

//源文件为 普中51单核A5开发板 例程:实验27:AD模数转换


回复

使用道具 举报

0

主题

14

帖子

38

积分

新手上路

Rank: 1

积分
38
发表于 2022-3-7 04:18:35 | 显示全部楼层
程序在单片机一直在循环走,TEMP也不断采样信息,不稳定,只有把TEMP放在另一个临时变量操作,才不会走样。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-14 07:17 , Processed in 0.092288 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表