久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3511|回復: 14
收起左側

單片機芯片內部ADC計算值不正確,為什么?

[復制鏈接]
ID:646328 發表于 2021-8-5 23:10 | 顯示全部樓層 |閱讀模式
各位大佬,請教個問題,這邊使用STC15W408as主控芯片,測量通道內部第9的內部基準源電壓數值,為什么總是算不對呢?我放上源碼,請大神幫忙看下。使用的是ssop20的芯片,我看也沒有Vref這個管腳,默認不是電壓供電多少,計算的值就是多少嗎?為什么算出來的值怎么大

ADC初始化

ADC初始化

主函數調用

主函數調用

顯示結果

顯示結果
回復

使用道具 舉報

ID:235200 發表于 2021-8-6 01:30 | 顯示全部樓層
程序中讀出的是10位ADC轉換值, 并沒有算出來對應的電壓值來

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:752974 發表于 2021-8-6 10:23 | 顯示全部樓層
AD轉換后的數據只是一個二進制數,定標后就是實際的物理量了。V=D*Vref/1024,D是AD后讀取的數據。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:646328 發表于 2021-8-6 10:58 | 顯示全部樓層
csmyldl 發表于 2021-8-6 01:30
程序中讀出的是10位ADC轉換值, 并沒有算出來對應的電壓值來

adc_value_Vcc=(unsigned long)(5000*(unsigned long)adc_value)/1024;
這句話不就是算電壓值的嗎?
回復

使用道具 舉報

ID:646328 發表于 2021-8-6 10:58 | 顯示全部樓層
munuc_w 發表于 2021-8-6 10:23
AD轉換后的數據只是一個二進制數,定標后就是實際的物理量了。V=D*Vref/1024,D是AD后讀取的數據。

adc_value_Vcc=(unsigned long)(5000*(unsigned long)adc_value)/1024;
我就是用這句話來根據這個公式算的
回復

使用道具 舉報

ID:609524 發表于 2021-8-6 11:03 | 顯示全部樓層
baocong2019 發表于 2021-8-6 10:58
adc_value_Vcc=(unsigned long)(5000*(unsigned long)adc_value)/1024;
我就是用這句話來根據這個公式算 ...

你是用內部vcc做參考電壓的嗎
回復

使用道具 舉報

ID:646328 發表于 2021-8-6 11:05 | 顯示全部樓層
楊天想 發表于 2021-8-6 11:03
你是用內部vcc做參考電壓的嗎

標定的供電電壓是5v  = 5000
然后來測外部通道
回復

使用道具 舉報

ID:401564 發表于 2021-8-6 13:31 | 顯示全部樓層
PCON2默認是0x00
你在ADC初始化那加一條
PCON2=0x20;
試一下

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:928549 發表于 2021-8-6 15:27 | 顯示全部樓層
假設有一個參考電壓,其中一個通道測量該參考電壓,那么就可以逆推出當前的電源電壓(電源電壓不一定有多么穩定,因此一般需要一個穩定的參考電壓),然后用逆推出的電源電壓去計算所要測量的電壓,你這個5000乘的有點夢幻了吧,這個5000直接用逆推出的電源電壓就可以了吧,,,如果對精度要求不高(直接乘5v就可以了),還有,我感覺程序有點問題 (ADC_RES<<8)|(ADC_RESL&3),這里有問題吧,把數增大了吧

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:646328 發表于 2021-8-6 17:09 | 顯示全部樓層
1093562897 發表于 2021-8-6 15:27
假設有一個參考電壓,其中一個通道測量該參考電壓,那么就可以逆推出當前的電源電壓(電源電壓不一定有多么 ...

                adc_value_temp = (ADC_RES<<2)|(ADC_RESL&3);
最終問題解決了,是偏移位數的問題,高8位在RES寄存器,低2位在bit1-bit0,所以應該是左移2位,而不是左移8位。
回復

使用道具 舉報

ID:401564 發表于 2021-8-6 18:08 | 顯示全部樓層
ADC_RESL&3
你看一下數據手冊,你這個公式對嗎?
所以我叫你PCON2改一下試一下
回復

使用道具 舉報

ID:584195 發表于 2021-8-6 18:18 | 顯示全部樓層
學習了,雖然我不用STC單片機!
回復

使用道具 舉報

ID:646328 發表于 2021-8-6 20:25 | 顯示全部樓層
Y_G_G 發表于 2021-8-6 18:08
ADC_RESL&3
你看一下數據手冊,你這個公式對嗎?
所以我叫你PCON2改一下試一下

不是PCON2寄存器的問題,是移位出現了問題
回復

使用道具 舉報

ID:401564 發表于 2021-8-6 21:08 | 顯示全部樓層
baocong2019 發表于 2021-8-6 20:25
不是PCON2寄存器的問題,是移位出現了問題

哦哦,匯編用習慣了,就覺得高位會變成低位了...
你這樣也是對的
但,如果你有看過PCON2的說明,你就會知道,你最初的公式是PCON2的ADRJ位為1時的公式,網上大多是用這個公式的,但ADRJ默認是0的,別人的程序是要設定PCON2的
這就是我提醒你修改PCON2試一下原因
回復

使用道具 舉報

ID:569384 發表于 2021-8-10 11:48 | 顯示全部樓層
ad值需要用公式換算會電壓值,而且檢測的電壓值要做降壓處理,不能超過參考電壓,再根據降壓比推算會原來的電壓值。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黄色绿像 | 国产一区二区在线免费视频 | 日日日日操 | 亚洲福利精品 | 欧美黄色一区 | 亚洲免费在线视频 | 日韩精品在线观看网站 | 国产精品无码专区在线观看 | 国产不卡一区 | 美日韩中文字幕 | 91在线免费观看 | 欧美一a一片一级一片 | 亚洲激情一区二区三区 | 国产精品一区二区三区久久久 | 国产成人啪免费观看软件 | 天堂一区二区三区四区 | 黄在线免费观看 | 成人在线| 在线视频a | 免费看国产一级特黄aaaa大片 | 欧美成人性生活 | 国产精品视频免费观看 | 欧美性大战久久久久久久蜜臀 | 一级黄色淫片 | 天堂素人约啪 | 欧美日韩国产一区二区三区不卡 | 成人av久久| www.精品一区 | 日本一区不卡 | 91精品中文字幕一区二区三区 | 国产区在线观看 | 欧美日韩一区二区在线 | 99热国产在线播放 | 一级黄色片网站 | 一本岛道一二三不卡区 | 羞羞视频网站在线观看 | 日本黄色高清视频 | 国产精品国产成人国产三级 | 懂色av色香蕉一区二区蜜桃 | 成年人黄色免费视频 | www.99热这里只有精品 |