/******************************************************************************* * File Name : Battery.c * Description : * Created on : 2021Äê4ÔÂ11ÈÕ * Author : www.hido-studio.com *******************************************************************************/ /******************************************************************************* * Include Files * *******************************************************************************/ #include "Battery.h" #include "ADC_hal.h" /******************************************************************************* * Macro * *******************************************************************************/ /******************************************************************************* * Type Definition * *******************************************************************************/ /******************************************************************************* * Local Variable * *******************************************************************************/ /******************************************************************************* * Local Function Declaration * *******************************************************************************/ /******************************************************************************* * Local Function * *******************************************************************************/ /******************************************************************************* * Global Function * *******************************************************************************/ /******************************************************************************* * Function Name : Battery_GetADC * Description : »ñÈ¡µç³ØADCÖµ * Input : None * Output : None * Return : µç³ØADCÖµ * Author : www.hido-studio.com * Modified Date: : 2021Äê4ÔÂ11ÈÕ *******************************************************************************/ HIDO_UINT16 Battery_GetADC(HIDO_VOID) { HIDO_UINT32 u32ADC = 0;//TODO ADC_GetValue(ADC_CH_BAT); return (HIDO_UINT16)u32ADC; } /******************************************************************************* * Function Name : Battery_GetVoltage * Description : »ñÈ¡µç³Øµçѹ * Input : None * Output : None * Return : µç³Øµçѹ * Author : www.hido-studio.com * Modified Date: : 2021Äê4ÔÂ11ÈÕ *******************************************************************************/ HIDO_FLOAT Battery_GetVoltage(HIDO_VOID) { HIDO_UINT32 u32ADC = 0;//TODO ADC_GetValue(ADC_CH_BAT); HIDO_FLOAT fVoltage = (u32ADC / 4095.0) * 3.3; fVoltage = fVoltage * (HIDO_FLOAT)2.0; return fVoltage; } /******************************************************************************* * Function Name : Battery_GetPercentage * Description : »ñÈ¡µç³ØÈÝÁ¿°Ù·Ö±È * Input : None * Output : None * Return : µç³ØÈÝÁ¿°Ù·Ö±È * Author : www.hido-studio.com * Modified Date: : 2021Äê4ÔÂ11ÈÕ *******************************************************************************/ HIDO_UINT32 Battery_GetPercentage(HIDO_VOID) { HIDO_FLOAT fVoltage = 0; HIDO_UINT32 u32Percentage = 0; //TODO fVoltage = Battery_GetVoltage(); if(fVoltage < (HIDO_FLOAT)3.3) { u32Percentage = 0; } else if(u32Percentage > 4.2) { u32Percentage = 100; } else { u32Percentage = (fVoltage - (HIDO_FLOAT)3.3) / (HIDO_FLOAT)(4.2 - 3.3)*100; } return u32Percentage; }