梁工
发表于 2023-3-26 15:25:08
本帖最后由 梁工 于 2023-3-26 15:29 编辑
sky999 发表于 2023-3-26 14:12
u16 READADC(u8 i)
{
u16 k;
ADC_CONTR |= 0x08+i;
这句操作错误,导致你读几个通道之后,就全部是读15通道了。
应该是这样:
ADC_CONTR &= 0x90;
ADC_CONTR|= 0x08+i;或者 ADC_CONTR |= i;
有否测试过我们的例子?我们的例子都是只在初始化时打开,后面一直不关。
sky999
发表于 2023-3-26 15:42:27
神农鼎 发表于 2023-3-26 14:33
具体哪个型号的MCU我们给你个完整的演示程序参考
8A8K64D4
sky999
发表于 2023-3-26 15:45:39
梁工 发表于 2023-3-26 15:25
ADC_CONTR |= 0x08+i;
这句操作错误,导致你读几个通道之后,就全部是读15通道了。
应该是这样:
ADC_CONTR |= 0x08+i; 这里的i是 0-6,因为用的是P0口,所以要加0X08呀
sky999
发表于 2023-3-26 15:54:37
梁工 发表于 2023-3-26 15:25
ADC_CONTR |= 0x08+i;
这句操作错误,导致你读几个通道之后,就全部是读15通道了。
应该是这样:
哦哦哦,懂了懂了,总算明白了,用“|”就会不断累加,你不说我还不知道,谢谢谢谢
神农鼎
发表于 2023-3-26 16:03:11
梁工辛苦了,每天要坚持学习错误程序:)
能否大家坚持学习我们的正确程序
还有这种问题,你用仿真器仿真,立即就可以观察到的啊,没必要学大佬,不仿真也照样出产品
下贴我们销售部客服全部会仿真,都可以教您啊
【新提醒】用STC-USB Link1D仿真STC8系列MCU - 编译器/仿真器/ISP下载/做自己的ISP/ID号加密/程序加密后传输 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
sky999
发表于 2023-3-26 16:08:28
梁工 发表于 2023-3-26 15:25
ADC_CONTR |= 0x08+i;
这句操作错误,导致你读几个通道之后,就全部是读15通道了。
应该是这样:
另外再问个问题啊,为什么ADCEXCFG设置为16次平均值,数值却还是依旧不是很稳定,但是如果我ADCEXCFG设置为2次,然后用for循环3次结果相加,再除以3,这样得到的数值就很稳定?
神农鼎
发表于 2023-3-26 16:14:30
STC-USB Link1D /【专业仿真器,全自动在线下载器/自动停电上电,脱机烧录器,USB转双串口工具】
你用这个仿真,实时观察到进行采样转换的是第几个通道,你那个软件错误你自己就会立即发现了
梁工
发表于 2023-3-26 17:46:00
sky999 发表于 2023-3-26 16:08
另外再问个问题啊,为什么ADCEXCFG设置为16次平均值,数值却还是依旧不是很稳定,但是如果我ADCEXCFG设置 ...
有可能跟干扰信号的频谱有一定关系。
举例来说,比如信号叠加有50Hz的市电干扰,则一般的连续采样N次求平均是很难滤除的。但是如果按市电N个周期内采样M次,则能很好的滤除工频干扰,一些Sigma Delta ADC专门有一项参数,就是抑制50/60Hz干扰的能力。
如果是做电压表显示给人眼睛看,我常用400ms刷新(2.5次一秒),则使用1~5KHz的均匀采样400ms求平均,就可以很好滤除。如果要更快的采样(用于控制系统),则20ms刷新,使用10KHz的速度均匀采样20ms求平均。
对于缓慢的信号,比如常用的测温,则可以使用一阶低通、二阶低通这种简单算法,就可以得到很稳定的读数(模拟大惯性的RC滤波)。
而对于电子秤这种高分辨率的应用,则混合多种滤波,各取优点,比如 平均值+一阶低通,就有很好的效果,既照顾到响应速度,又照顾到高分辨率读数的稳定性。
梁工
发表于 2023-3-26 17:51:19
sky999 发表于 2023-3-26 15:45
ADC_CONTR |= 0x08+i; 这里的i是 0-6,因为用的是P0口,所以要加0X08呀
是这个意思。我一般都按0~15给出通道,P1.0~P1.7对应0~7通道,P0.0~P0.6对应8~14通道,15通道是内部的Bandgap电压。有些少引脚的型号(比如STC8G1K08A-SOP8)的通道号与IO对应会不同,以引脚图为准。
梁工
发表于 2023-3-26 17:52:22
神农鼎 发表于 2023-3-26 16:03
梁工辛苦了,每天要坚持学习错误程序
能否大家坚持学习我们的正确程序
:handshake服务大众,全年无休!