作者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/m.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