看板 ASM 關於我們 聯絡資訊
我用的是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
tommycc: 用%u or %hu? 10/05 23:20
tommycc: sorry 我少看強制轉型 10/05 23:21
tommycc: 會不會是你的MCC版本差異https://goo.gl/B2cIhS 10/05 23:26
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
chuegou: 看起來是因為靠左對齊的關係 10/07 00:27
chuegou: 方法1 adc的結果暫存器設定改成靠右對齊 10/07 00:28
chuegou: 方法2 取樣結果右移4 (>>4) 10/07 00:29