AVR内置的1.1V的ad电压基准源似乎不稳定,数值跳动好大,可以消除吗?问题二补充,如梦赐教,不胜感激!
答案:3 悬赏:20 手机版
解决时间 2021-03-01 05:04
- 提问者网友:心牵心
- 2021-02-28 19:20
AVR内置的1.1V的ad电压基准源似乎不稳定,数值跳动好大,可以消除吗?问题二补充,如梦赐教,不胜感激!
最佳答案
- 五星知识达人网友:野味小生
- 2021-02-28 20:54
加个滤波电容试试追问加过了,还是有较大跳动,程序有问题吗?unsigned int value写错了是v,串口出不了浮点数
全部回答
- 1楼网友:duile
- 2021-02-28 22:43
程序不对,
unsigned char value;
value是无符号字符型,显然最后不能得到小数值。
v+=v_h*256
value= (v/1023)*1.1
这两句后面怎么没有分号?追问unsigned int value写错了是v,分号加上了,没打上去追答"unsigned int value写错了是v"是什么意思?
我是说你不能把value定义成无符号字符型,程序头两行不对。
float value ;//这里定义成浮点类型,可以表示为小数
unsigned char value;//但是这里你为什么又定义成无符号字符型了呢?
//两行程序对同一个变量定义,结果以后一行为准。
//你要把最后一行程序等号左边的变量定义为浮点类型的。
value= (v/1023)*1.1;//就是这行里的value 必须是浮点类型的。
unsigned char value;
value是无符号字符型,显然最后不能得到小数值。
v+=v_h*256
value= (v/1023)*1.1
这两句后面怎么没有分号?追问unsigned int value写错了是v,分号加上了,没打上去追答"unsigned int value写错了是v"是什么意思?
我是说你不能把value定义成无符号字符型,程序头两行不对。
float value ;//这里定义成浮点类型,可以表示为小数
unsigned char value;//但是这里你为什么又定义成无符号字符型了呢?
//两行程序对同一个变量定义,结果以后一行为准。
//你要把最后一行程序等号左边的变量定义为浮点类型的。
value= (v/1023)*1.1;//就是这行里的value 必须是浮点类型的。
- 2楼网友:忘川信使
- 2021-02-28 21:11
你自己做的硬件吗?追问是的,硬件应该没什么问题追答我记得手册上说了外部参考引脚要加滤波电容的,你加了没?追问我用的内部参考,1.1v,滤波电容加了aref 和avcc都加了追答跳动有多大?追问一到2个字追答那很正常,你没有软件滤波,对于10位的ad一般会这样
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯