/********************************************************************* ?*?@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的值。
熱門產(chǎn)品 :
CH182: 以太網(wǎng)PHY收發(fā)器芯片