梁工 发表于 2023-3-8 16:43:41

这是我写的验证程序,1秒唤醒,醒来只读一次ADC。输入VCC4.28V,ADC读出计算4.27V,非常精确。



梁工 发表于 2023-3-8 16:45:24

测试了延时1ms,结果一样,4.27V。
上贴的程序,楼主可以直接下载HEX文件测试。

980578873 发表于 2023-3-8 16:47:36

神农鼎 发表于 2023-3-8 14:44
没200mS那么夸张






见如下截图,SPEED等于多少,怎么计算,谢谢。

980578873 发表于 2023-3-8 16:49:49

梁工 发表于 2023-3-8 16:45
测试了延时1ms,结果一样,4.27V。
上贴的程序,楼主可以直接下载HEX文件测试。
...

好的,你程序里面的采样时间设置多少?我去下载测试看看。

梁工 发表于 2023-3-8 16:54:12

980578873 发表于 2023-3-8 16:49
好的,你程序里面的采样时间设置多少?我去下载测试看看。

采样时间10,基本是最小的了。

#define MAIN_Fosc                11059200L        //定义主时钟

#define        ADC_SPEED        3                /* 0~15, ADC时钟 = SYSclk/2/(n+1) */
#define        RES_FMT                (1<<5)        /* ADC结果格式 0: 左对齐, ADC_RES: D9 D8 D7 D6 D5 D4 D3 D2, ADC_RESL: D1 D0 000000 */
                                                        /*             1: 右对齐, ADC_RES: 000000D9 D8, ADC_RESL: D7 D6 D5 D4 D3 D2 D1 D0 */

#define CSSETUP                (0<<7)        /* 0~1,ADC通道选择时间      0: 1个ADC时钟, 1: 2个ADC时钟,默认0(默认1个ADC时钟) */
#define CSHOLD                (1<<5)        /* 0~3,ADC通道选择保持时间(n+1)个ADC时钟, 默认1(默认2个ADC时钟)                */
#define SMPDUTY                10                /* 10~31, ADC模拟信号采样时间(n+1)个ADC时钟, 默认10(默认11个ADC时钟)            */
                                                        /* ADC转换时间: 10位ADC固定为10个ADC时钟, 12位ADC固定为12个ADC时钟.                                 */

神农鼎 发表于 2023-3-8 18:30:30



点击这个右边的回型针可以插入【附件,如PDF】

神农鼎 发表于 2023-3-8 18:32:37



点击右上角的【高级模式】可以直接贴图

我一般建议用户上原理图的PDF, 这样1次就上全图了,也清晰,免得反复问

神农鼎 发表于 2023-3-8 18:35:33

梁工 发表于 2023-3-8 16:45
测试了延时1ms,结果一样,4.27V。
上贴的程序,楼主可以直接下载HEX文件测试。
...

我估计200uS 也是一样


页: 1 2 [3]
查看完整版本: 单片机唤醒后ADC首次读取电池电压不准确