完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
void ADC_init()
{ P1ASF = 0xff; ADC_RES = 0; ADC_CONTR = 0xe0; delay_ms( 5 ); AUXR1 = 0x00; P1M0|=0x01; //开漏模式 1_0= #00000000B P1M1|=0x01; } u16 ADC_process() { //int vol; ADC_CONTR = 0xe8; _nop_(); _nop_(); _nop_(); _nop_(); while ( ! ( ADC_CONTR & ADC_FLAG ) ); ADC_CONTR = 0x00; //vol = ( ADC_RES * 100 ) / 256; //vol *= 5; //return vol; return ADC_RES; } |
|
|
|
AD值是一个经过计算的变量?
|
|
|
|
帮顶.....
|
|
|
|
|
|
变量没设置好,AD读回所要赋值的变量要用能用浮点型的。
|
|
|
|
跟我之前用stc12C5204AD的情况一样
|
|
|
|
是AD的RESL和RESL的取回值要用浮点型变量装载?我试了下,没用啊
|
|
|
|
虽然不是那个问题,但是我找到了,是乘法过多的问题,方向对了,万分感谢
|
|
|
|
|
|
|
|
我最近也在用个这个单片机学习AD 也是 遇到这样的问题。请教楼主如何解决的么?
|
|
|
|
是不是因为寄存器长度有限,要分步计算?我以前遇到过问题,分步计算就正确了。
|
|
|
|
具体问题不知道,只是用串口发送调试,一步一步,发现有的数据计算问题,数据没有溢出应该,但是算起来就是不对,不断的换计算公式,换计算函数,就对了最后,没总结出问题的共性
|
|
|
|
void ADC_init()
{  1ASF = 0xff; ADC_RES = 0; delay_ms( 5 ); AUXR1 = 0x00;  1M0|=0x01; //开漏模式 P1_0= #00000000B  1M1|=0x01; } u16 ADC_process( u8 ch ) { u16 vol; u8 adc_l; ADC_CONTR = ch + 0xe8; _nop_(); _nop_(); _nop_(); _nop_(); while ( ! ( ADC_CONTR & ADC_FLAG ) ); ADC_CONTR = 0x00; vol = ADC_RES; vol = vol * 4; adc_l = ADC_RESL & 0x03; vol = vol + adc_l; return vol; } 不好意思,这个才对,前一个是错的。 |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
633 浏览 0 评论
3336 浏览 9 评论
3013 浏览 16 评论
3506 浏览 1 评论
9098 浏览 16 评论
1216浏览 3评论
631浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
619浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2361浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1926浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 14:36 , Processed in 1.238086 second(s), Total 68, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号