程序的功能结构和修改
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
1、包含的功能:
目前Winbond 提供的电动车控制器程序已经实现电动自行车的功能,如下:
1)、刹车;
2)、速度调节;
3)、限流保护;
4)、过流中断保护功能;
5)、欠压保护;
6)、1+1助力;
7)、巡航功能;
8)、堵转保护功能;
9)、EABS功能;
10)、最大速度限制选择:
2、程序结构
Winbond 提供的电动车控制器程序结构;程序的处理过程;个个功能之间的关系,如下图所示:
3、程序的修改说明
为了便于修改Winbond 将完整的功能的project 见附件W79E833 E_Bike_project Lib.Zip文件。为了使修改者能够把精力集中的重要的参数部分,将完整的E-Bike 功能封装成库(*.Lib库文件), 可以通过调用库文件中的函数来实现E-Bike的控制功能和参数设置功能。
Winbond 提供的完整的功能的project的界面比较友好,只有main函数,和Initial_io函数开放,用户可以在main函数的while循环中如下位置任意添加自己的程序
//此处添加自己的程序
//添加自己的程序结束
Init_IO();使设置I/O 状态的函数,在该函数中客户可以根据自己的意愿设置I/O的状态(注意:在修改程序时没有涉及到的I/O,不要改变它的状态;否则后果自负)。
下面的内容包括:函数的定义和说明,主函数及其说明。
//----------------------函 数 定 义-------------------------//
//***初始化函数***//
void Init(void);
//***初始化端口函数***//
void Init_IO(void);
//***霍尔信号采样函数***//
void H_Sample(void);
//***相位变换函数***//
void Phase_Change(void);
//***自助力函数***//
void AutoHelpEN(bit A_EN,unsigned int A_Duty,unsigned char A_Time);
/*
第一个参数设定助力功能允许与否,1为允许,0为禁止
第二个参数设定助力力量(PWM占空比),数值范围:0~0x355,数值越大,力量越大
第三个参数设定助力时间,数值越大,时间越长
*/
//***巡航定速函数***//
void Keep_SpeedEN(bit K_EN,unsigned char K_Time,unsigned char K_LowSpeed);
/*
第一个参数设定定速巡航功能允许与否,1为允许,0为禁止
第二个参数设定定速巡航最低速设置
第三个参数设定在巡航点保持多长时间后才进入巡航
*/
//***限流值设定函数***//
void Current_Lim(unsigned int CM);
/*
过流保护上限值设定
0xB00对应限电流最大大约为2.6A
0xB80对应限流值最大大约为3.8A
*/
//***欠压保护设定函数***//
void LowVoltage_Lim(unsigned int CM);
/*
欠压保护下限值设定
电池电压为47.9V时ADC采样值为0xB6 ==> 0xB60
推算电池电压为41V时的采样值为0x9B ==> 0x9B0
推算电池电压为40V时的采样值为0x98 ==> 0x980
*/
//***EABS设定函数***//
void EABS_Set(bit EBS_EN,bit EBB_EN);
/*
第一个参数为滑行充电功能使能,1为允许,0为禁止
第二个参数为电刹车功能使能,1为允许,0为禁止
*/
//***硬件控制最大速度***//
void Speed_LimHW(bit SG1,bit SG2,bit SG3,bit SG4);
/*
参数只能有一个为1。
第一个参数对应15km/h
第二个参数对应20km/h
第三个参数对应30km/h
第四个参数对应40km/h
*/
//***软件控制最大速度***//
void Speed_LimSW(unsigned char SG);
/*
参数数值由0x00~0x20,数值越小速度越大,反之则越小
*/
//--------------------函数定义结束--------------------------//
/*****************************************************************************
*
主函数
******************************************************************************/
void main(void)
{
//***初始化***//
Init();
//***初始化端口***//
Init_IO();
//***霍尔信号采样***//
H_Sample();
//***相位变换***//
Phase_Change();
//===自助力功能设定===//
AutoHelpEN(1,0x1AA,200);
//===巡航定速功能设定===//
Keep_SpeedEN(1,0x20,6);
//===过流值上限设定===//
Current_Lim(0xB48);
//===欠压最低电压设定===//
LowVoltage_Lim(0x9B0);
//===EABS设定===//
EABS_Set(0,1);
//===硬件设定最大速度===//
Speed_LimHW(0,0,0,1);
//===软件设定最大速度===//
Speed_LimSW(0x01);
while(1)
{
_nop_();
//此处添加自己的程序
//添加自己的程序结束
}
}
/*************************** 主 函 数 结 束 ********************************/
霍尔信号
无刷马达
超静音启动
电刹车/反充电
飞车保护
限流(ADC0)
欠压(ADC2)
PWM OUT
L_Duty
M_DUTY
助力
定速
PWM_MAX
刹车
转把(ADC1)