CH573F計(jì)算ADC粗調(diào)偏差值的問題
/*********************************************************************
?*?@fn??????ADC_DataCalib_Rough
?*
?*?@brief???采樣數(shù)據(jù)粗調(diào),獲取偏差值,必須先配置ADC后調(diào)用此函數(shù)獲取校準(zhǔn)值
?*
?*?@param???none
?*
?*?@return??偏差
?*/
signed?short?ADC_DataCalib_Rough(void)?//?采樣數(shù)據(jù)粗調(diào),獲取偏差值
{
????uint16_t?i;
????uint32_t?sum?=?0;
????uint8_t??ch?=?0;???//?備份通道
????uint8_t??ctrl?=?0;?//?備份控制寄存器

????ch?=?R8_ADC_CHANNEL;
????ctrl?=?R8_ADC_CFG;

????R8_ADC_CFG?=?0;
????ADC_ChannelCfg(7);??????????????????????????????????????????//?6/7/10/11?可選
????R8_ADC_CFG?|=?RB_ADC_OFS_TEST?|?RB_ADC_POWER_ON?|?(2?<<?4);?//?進(jìn)入測試模式
????R8_ADC_CONVERT?=?RB_ADC_START;
????while(R8_ADC_CONVERT?&?RB_ADC_START);
????for(i?=?0;?i?<?16;?i++)
????{
????????R8_ADC_CONVERT?=?RB_ADC_START;
????????while(R8_ADC_CONVERT?&?RB_ADC_START);
????????sum?+=?(~R16_ADC_DATA)?&?RB_ADC_DATA;
????}
????sum?=?(sum?+?8)?>>?4;
????R8_ADC_CFG?&=?~RB_ADC_OFS_TEST;?//?關(guān)閉測試模式

????R8_ADC_CHANNEL?=?ch;
????R8_ADC_CFG?=?ctrl;
????return?(2048?-?sum);
}

以上是SDK包中計(jì)算ADC粗調(diào)偏差值的函數(shù),不理解最后為什么要用2048去減sum的值。

這里可以查看一下:

image.png


12位的adc就算是按位取反,不應(yīng)該是用4096去減么?為啥要用2048啊。


這里確認(rèn)了一下,手冊如上提供的是ADC進(jìn)行配置,與這里的校準(zhǔn)是無關(guān)系的。

這里進(jìn)行校準(zhǔn)時標(biāo)準(zhǔn)電壓取的是中間值,4096/2固定就是2048,這個是設(shè)計(jì)的時候固定的。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频