欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: STC單片機 ADC模擬量有個地方不理解,每次讀ADC的值時,要先打開轉換ADC_CONTR |=... [打印本頁]

作者: 芯菲    時間: 2024-1-10 02:18
標題: STC單片機 ADC模擬量有個地方不理解,每次讀ADC的值時,要先打開轉換ADC_CONTR |=...
STC單片機  ADC模擬量有個地方不理解,每次讀ADC的值時,要先打開轉換ADC_CONTR |= 0x40;
轉換完成后又關閉轉換ADC_CONTR &= 0xBF;
讀完ADC的值后,又打開轉換ADC_CONTR |= 0x40;
每次要讀ADC數據,都要這樣操作一便。
什么是轉換?為什么每次讀數據都要打開和關閉一次轉換?

作者: newlined    時間: 2024-1-10 06:18
ADC_CONTR |= 0x40,是把ADC_CONTR的D6置1,D6是ADC_START位,應該是開始AD轉換的意思。
看手冊是這樣說的:ADC_START:ADC 轉換啟動控制位。寫入 1 后開始 ADC 轉換,轉換完成后硬件自動將此位清零。看手冊,讀完AD值后,應該不用關閉了。

作者: wulin    時間: 2024-1-10 07:16
模擬量轉換成數字量不是立即完成,需要一點時間。啟動轉換后等待轉換完成標志ADC_FLAG為1后,讀取的數字量才有效,并且軟件清0 ADC_FLAG,為下一次轉換作準備。
作者: 劉佑紅    時間: 2024-1-10 08:37
根據手冊得知,每次轉換前是需要先寫入ADC_CONTR |= 0x40,但轉換結束不需要再寫入ADC_CONTR &= 0xBF了,因為單片機會自己清零,在實際應用中也是這樣的。






作者: cocolala    時間: 2024-1-10 09:22
    1、要看下你的芯片版本,STC很多芯片如果不是最終版本會有硬件BUG,那么有問題不奇怪。
    2、你的應用是不是需要多個通道切換,如果是,這種打開ADC之后關閉ADC再到打開是屬于正常的邏輯。如果是單個固定通道,又不考慮功耗,那么打開一次就可以不用關閉的。
    3、樓上正解,ADC打開后,包括ADC電源打開,是需要稍作延時的,這樣檢測出的值才更準確。

作者: joyb    時間: 2024-1-10 10:30
這是STC12的


作者: 芯菲    時間: 2024-1-12 16:26
劉佑紅 發表于 2024-1-10 08:37
根據手冊得知,每次轉換前是需要先寫入ADC_CONTR |= 0x40,但轉換結束不需要再寫入ADC_CONTR &= 0xBF了,因 ...

謝謝!
作者: 芯菲    時間: 2024-1-12 16:27
wulin 發表于 2024-1-10 07:16
模擬量轉換成數字量不是立即完成,需要一點時間。啟動轉換后等待轉換完成標志ADC_FLAG為1后,讀取的數字量 ...

謝謝!
作者: 清風皓月撫心繞    時間: 2024-1-12 16:47
adc采集是獨立于51單片機運行的,AD轉換芯片與51單片機通過對應通信協議進行數據通信。0x40相當于二者溝通的門戶,當單片機需要使用ADC的數據時打開通道進行數據交換。習慣上在讀完后關閉通道,解放cpu資源。
作者: lgwd    時間: 2024-1-13 17:15
提出這類問題或是表明你沒有認真閱讀STC的說明書。或是你沒有讀懂說明書,那就是就是基礎問題,還需要加倍努力提高單片機開發基礎能力!




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1