[問題] PIC的ADC使用問題

看板ASM (組合語言)作者 (JIM)時間8年前 (2016/10/05 17:49), 8年前編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
我用的是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://www.ptt.cc/bbs/ASM/M.1475660947.A.E05.html

10/05 23:20, , 1F
用%u or %hu?
10/05 23:20, 1F

10/05 23:21, , 2F
sorry 我少看強制轉型
10/05 23:21, 2F

10/05 23:26, , 3F
會不會是你的MCC版本差異https://goo.gl/B2cIhS
10/05 23:26, 3F

10/05 23:31, , 4F
是說你ADC設12bit => 0~4095
10/05 23:31, 4F
我直接給值的話 ADCResult = 0x000011; 出來的結果是17,應該是沒有轉換錯誤才對~ 12bit 4095沒錯! 謝謝指正QQ ※ 編輯: jiqian (42.73.121.112), 10/06/2016 09:23:48

10/07 00:27, , 5F
看起來是因為靠左對齊的關係
10/07 00:27, 5F

10/07 00:28, , 6F
方法1 adc的結果暫存器設定改成靠右對齊
10/07 00:28, 6F

10/07 00:29, , 7F
方法2 取樣結果右移4 (>>4)
10/07 00:29, 7F
文章代碼(AID): #1NzCoJu5 (ASM)
文章代碼(AID): #1NzCoJu5 (ASM)