![]() |
ADC = SYSclk/2/16/SPEED 帶入公式就可以了 |
你們說的是STC-AD的采樣率,有誰知道單片機的數據輸出率怎么算的?? |
不一定速度快了就好,選擇比較合適的,也就是在保證允許精度的情況下,盡量調快速度 |
問題解決了嗎 |
F ADC = SYSclk/2/16/SPEED |
其實速度不影響AD精度,只是一般人不會用而已,51單片機實際只有一路AD硬件,通過模擬開關選擇不同的通道,切換通道是需要一定的時間才能夠使電壓穩定,所以前面幾次ADC數值不準確是正常的,切換通道時前面幾次ADC丟棄,再取幾次ADC平均才能夠得到準確的AD數值,如果不改變通道就不需要丟棄。STC8單片機最快ADC速度=32/30M=1.0666us,每秒可以進行93.7萬次,但是ADC不可以自動連續運行,啟動、讀取數據也需要時間,所以官方給出的數據是每秒可以進行80萬次ADC。 |
不一定速度快了就好,選擇比較合適的,也就是在保證允許精度的情況下,盡量調快速度 |
同問,上課聽的一知半解 |
數據表里說的很清楚了,如果越快,那精度不高的。也可能抖動的歷害,想穩定點,要選慢點,或多次取平均值。 |
是不是速度越快越好?為什么還要設置速度?用最快速不是很好嗎 |
輸入ADC模塊的時鐘頻率=SYSclk/2 完成一次A/D轉換需要16個ADC時鐘脈沖 SPEED=ADC_CHS[3:0]設置狀態 完成一次A/D轉換時間=SYSclk/2/16/SPEED |
Y_G_G 發表于 2019-4-3 08:38 意思是 stc8a8k64s4a12單片機ADC轉換速度等于:SYSclk/ (設置的speed系數) *不要去理會多少分頻(2分頻。。。。)和16個ADC時鐘才能完成一次轉換這樣的描述 *直接將Speed設置為32~512,再用系統時鐘除這個系數就是ADC轉換速度 是這樣嗎? |
想繼續請教一下,這個轉化時間的選擇是以什么來評定的呢?按理來說選擇時間越短會更好呀 |
F ADC = SYSclk/2/16/SPEED SYSclk=系統頻率 輸入ADC模塊的時鐘頻率=SYSclk/2 完成一次A/D轉換需要16個ADC時鐘脈沖 SPEED=ADC_CHS[3:0]設置狀態 完成一次A/D轉換時間=SYSclk/2/16/SPEED,注:SPEED的值1~16 |
不要看這個,底下表格里面已經標志好了:最快是32個系統時鐘完成,最慢是512個系統時鐘完成,自行設定就可以了它說的是ADC時鐘等于多少的分頻,實際上就是系統時鐘*多少,然后就是是每16個ADC時鐘完成一次ADC 最快的是2分頻算一個,那就是:系統時鐘*2*16=32個系統時鐘 主要是你沒有嚴謹的從頭看數據手冊 ![]() |