|
无线充电的学习,有画板资料
Altium Designer画的PCB图如下:
单片机源程序如下:
- #include "power.h"
- #include "rc.h"
- #include "adc.h"
- #include "usart.h"
- FILT VccFilt = {0}; //电压滤波系数
- FILT CurrentFilt = {0}; //电流滤波系数
- unsigned long CurrentValue = 0; //系统输出电流
- /***********************************************************************
- 函数名称:Current_GetValue
- 函数功能:获取当前的输出电流
- 输入参数:无
- 返回参数:输出电流,mA
- 备 注:无
- ************************************************************************/
- unsigned int Current_GetValue(void)
- {
- Adc_GetValue(AN4);
- CurrentValue = Rc_Filter(Adc_GetValue(AN4),&CurrentFilt); //当前的电流采样
- CurrentValue *= 0.9988878393665; //当前电流mA
- CurrentValue *= 1.18; //校准,和USB测试仪器的测量电流匹配
- if(CurrentValue > 65536)CurrentValue = 60000; //防止瞬间过大,超过返回范围
- return CurrentValue;
- }
- /***********************************************************************
- 函数名称:Power_GetValue
- 函数功能:获取当前的系统功率
- 输入参数 :无
- 返回参数 :输出当前功率
- 备 注:无
- ************************************************************************/
- unsigned char Power_GetValue(void)
- {
- unsigned int voltValue;
- Adc_GetValue(ANPOWER);
- voltValue = Rc_Filter(Adc_GetValue(ANPOWER),&VccFilt);
- voltValue = (voltValue * 5) >> 8; //获取当前电压值
- CurrentValue = CurrentValue * voltValue / 1000;
- if(CurrentValue > 256)CurrentValue = 200;
- return CurrentValue; //当前功率W,保留小数点后一位
- }
复制代码
|
评分
-
查看全部评分
|