完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/*********************************************************************
* @fn ADC_DataCalib_Rough * * @brief 采样数据粗调,获取偏差值,必须先配置ADC后调用此函数获取校准值 * * @param none * * @return 偏差 */ signed short ADC_DataCalib_Rough(void) // 采样数据粗调,获取偏差值 { 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); // 进入测试模式 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; // 关闭测试模式 R8_ADC_CHANNEL = ch; R8_ADC_CFG = ctrl; return (2048 - sum); } 以上是SDK包中计算ADC粗调偏差值的函数,不理解最后为什么要用2048去减sum的值。 |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:49 , Processed in 0.897894 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号