新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2014-12-10
- 在线时间
- 0 小时
|
5金钱
看到官方函数中有这样的表达式,颇为不解,请学长解惑。
void AWU_LSICalibrationConfig(uint32_t LSIFreqHz)
00136 {
00137
00138 uint16_t lsifreqkhz = 0x0;
00139 uint16_t A = 0x0;
00140
00141 /* Check parameter */
00142 assert_param(IS_LSI_FREQUENCY_OK(LSIFreqHz));
00143
00144 lsifreqkhz = (uint16_t)(LSIFreqHz / 1000); /* Converts value in kHz */
00145
00146 /* Calculation of AWU calibration value */
00147
00148 A = (uint16_t)(lsifreqkhz >> 2U); /* Division by 4, keep integer part only */
00149
00150 if ((4U * A) >= ((lsifreqkhz - (4U * A)) * (1U + (2U * A))))
00151 {
00152 AWU->APR = (uint8_t)(A - 2U);
00153 }
00154 else
00155 {
00156 AWU->APR = (uint8_t)(A - 1U);
00157 }
00158 }
|
|