作者jiqian (JIM)
看板ASM
标题[问题] PIC的ADC使用问题
时间Wed Oct 5 17:49:05 2016
我用的是PIC16LF1782,
想请问, 我的应用是将
温度感测器->pic->bluetooth
先不要用FVR的话,
读到的值不是应该要0~4095吗? 可是我读的值都是到19920~20192乱跳
配置图如
http://imgur.com/a/AdgcY
TXRX接给蓝芽,AN3接收ANALOG
看到他ADC有些Vref觉得蛮困惑的, 这些有需要进行什麽设定吗?
实际电路上又要去接什麽东西吗?
http://imgur.com/a/oW4lq
uint16_t ADCResult;
char charADC[20];
ADCResult=ADC_GetConversion(channel_AN3);
sprintf(charADC,"%d",(int)ADCResult);
USART_putstring("ADCResult AN3 = ");
USART_putstring(charADC);
卡了一个礼拜了, 实在抓不到头绪, 还请各位大师指点迷津!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.121.112
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1475660947.A.E05.html
1F:推 tommycc: 用%u or %hu? 10/05 23:20
2F:→ tommycc: sorry 我少看强制转型 10/05 23:21
4F:→ tommycc: 是说你ADC设12bit => 0~4095 10/05 23:31
我直接给值的话 ADCResult = 0x000011;
出来的结果是17,应该是没有转换错误才对~
12bit 4095没错! 谢谢指正QQ
※ 编辑: jiqian (42.73.121.112), 10/06/2016 09:23:48
5F:推 chuegou: 看起来是因为靠左对齐的关系 10/07 00:27
6F:→ chuegou: 方法1 adc的结果暂存器设定改成靠右对齐 10/07 00:28
7F:→ chuegou: 方法2 取样结果右移4 (>>4) 10/07 00:29