请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AFE4403 大家好、我正在查看 AFE4403 EVM 的源代码(FW_SRCV2.3_Release)。
// 根据应用程序修改的变量*/ const unsigned char ILED1_CURR_MAX_mA = 45; // LED1最大电流要求 对于应用 const unsigned char ILED1_CURR_MIN_mA = 5; // LED1最小电流需求 对于应用 、const unsigned char ILED2_CURR_MAX_mA = 45; // LED2最大电流要求 对于应用 、const unsigned char ILED2_CURR_MIN_mA = 5; // LED2最小电流要求 对于应用 const unsigned char low_THR_Percent = 10; //低阈值百分比 const unsigned char high_THR_Percent = 90; //高阈值百分比 常量无符号字符 HYS_Percent = 3; //迟滞百分比 const unsigned char target_THR_percent = 33;//目标阈值百分比 //变量末尾根据应用进行修改*/ calibRoutineParcalams bParams; void AFE44xx_PowerOn_Init (void){ Init_AFE44xx_DRDY_Interrupt ();AFE44xx_WDTL =默认值) ;void AFE44xx_WLD_W430Int (void) while (1){ if (readDataFlag){ readDataFlag = 0; AFE44xx_SPO2_Data_Buf[0]= AFE44xx_Reg_Read (42);//读取红色数据 AFE44xx_SPO2_Data_Buf[1]= AFE44xx_Reg_Read (43);//读取环境数据 AFE44xx_SPO2_Data_Buf[2]= AFE44xx_Reg_Read (44);//读取 IR 数据 AFE44xx_SPO2_Data_Buf[3]= AFE44xx_Reg_Read (45);//读取环境数据 AFE44xx_SPO2_Data_Buf[4]= AFE44xx_Reg_Read (46);//读取红色-环境数据 AFE44xx_SPO2_Data_Buf[5]= AFE44xx_Reg_Read (47);//读取 IR -环境数据 //P5OUT |= BIT0; //打开 LED P5.0 (绿色) 如果(CALIBRAING_ENABLED = true) { calibrationLED1 (AFE44xx_SPO2_Data_Buf[2]); calibrationLED2 (AFE44xx_SPO2_Data_Buf[0]); } //... 否则、如果(整体字符串[0]= CALIBRAY_CMD)//校准代码命令 { if (整体字符串[1]= CALIBRATE_TRUE) { CALIBRAING_ENABLED = true; AFE44xx_Default_Reg_Init(); calibParams.ILED1_CURR_MAX_mA = ILED1_CURR_MAX_mA; // LED1最大电流 calibParams.ILED1_CURR_MIN_mA = ILED1_CURR_MIN_mA; // LED1最小电流 calibParams.ILED2_CURR_MAX_mA = ILED2_CURR_MAX_mA; // LED2最大电流 calibParams.ILED2_CURR_MIN_mA = ILED2_CURR_MIN_mA; // LED2最小电流 calibParams.low_THR_Percent = low_THR_Percent; //低阈值百分比 calibParams.HIGH_THR_Percent = HIGH_THR_Percent; //高阈值百分比 calibParams.HYS_Percent = HYS_Percent; //滞后百分比 calibParams.target_THR_Percent = target_THR_Percent; //目标阈值百分比 initCalibrationRoutine (&calibParams); } 否则、如果(整体字符串[1]= CALIBRATE_FALSE) { CALIBRAY_ENABLED = false; } } //... } void calibrationLED1 (unsigned long LED1data) { //变量声明 静态无符号 int LED1_waitTimeCount = 0; 静态无符号 int LED1_blockSizeCount = 0; 静态无符号 int LED1_freezeTimeCount = 0; 静态无符号长整型 LED1_Meas DC = 0; 静态无符号长 LED1_Meas DC_Est = 0; 静态 无符号互连代码1;静态无符号 LEDONIGLE 代码1 // LED1校准状态机 开关(LED1CalibrationState){ //... }
该 LED 校准状态机如何用于 LED1 (IR LED)和 LED2 (红色 LED)?
此外、每个校准算法的工作方式是否相同? 我很好奇"calibrationLED1"和"calibrationLED2"函数是否有一些常见的部分。
最后、这些最小值/最大值/阈值/迟滞值是如何计算的?