/*
** ###################################################################
**
** Project :
** Processor :
** Version : V1.0
** Datasheet :
** Date/Time : 2016-11-22
** Abstract :
** This module contains DRV ANTIPINCH code
** for selected on-chip peripherals.
** Contents :
** Function ""
** ...
**
** ###################################################################
*/
#include "drv_ap.h"
#if _M_DRV_AP
/* User declarations and definitions */
#if _M_DRV_AP_HALL_ERR
bool SharedCapCntEn;
bool SharedflgHallErr;
bool SharedflgDualHallErr;
t_int8 SharedCapCnt; //IC +1;IC -1
#endif
#if _M_DRV_AP_HALL_DIR
t_int8 SharedCapDir; //up -1;dn 1
t_int8 SharedCapDirBak;
#endif
#if _M_DRV_AP_HALL_COMPENS
bool SharedflgHallCompens;
#endif
#if _M_DRV_AP_HALL_FIX
bool flgHallReversedFix = false;
#endif
#if _M_DRV_AP_VOLTAGE_CORRECTION
bool flgVoltageEdgeDn;
#endif
#if _M_DRV_AP_BUF
#if AP_nBUF == 8
const t_uint16 cntApPeriodGrp[AP_nBUF][2] = {
{1,5},
{2,6},
{3,7},
{4,0},
{5,1},
{6,2},
{7,3},
{0,4},
};
const t_uint16 cntApPreHiLoGrp[AP_nBUF] = {
4,
5,
6,
7,
0,
1,
2,
3,
};
#endif
#if AP_nBUF == 10
const t_uint16 cntApPeriodGrp[AP_nBUF][2] = {
{1,6},
{2,7},
{3,8},
{4,9},
{5,0},
{6,1},
{7,2},
{8,3},
{9,4},
{0,5},
};
const t_uint16 cntApPreHiLoGrp[AP_nBUF] = {
5,
6,
7,
8,
9,
0,
1,
2,
3,
4,
};
#endif
#if AP_nBUF == 16 //4对绕组
const t_uint16 cntApPeriodGrp[AP_nBUF][2] = {
{1,9},
{2,10},
{3,11},
{4,12},
{5,13},
{6,14},
{7,15},
{8,0},
{9,1},
{10,2},
{11,3},
{12,4},
{13,5},
{14,6},
{15,7},
{0,8},
};
const t_uint16 cntApPreHiLoGrp[AP_nBUF] = {
8,
9,
10,
11,
12,
13,
14,
15,
0,
1,
2,
3,
4,
5,
6,
7,
};
#endif
#if AP_nBUF == 20 //5对绕组
const t_uint16 cntApPeriodGrp[AP_nBUF][2] = {
{1,11},
{2,12},
{3,13},
{4,14},
{5,15},
{6,16},
{7,17},
{8,18},
{9,19},
{10,0},
{11,1},
{12,2},
{13,3},
{14,4},
{15,5},
{16,6},
{17,7},
{18,8},
{19,9},
{0,10},
};
const t_uint16 cntApPreHiLoGrp[AP_nBUF] = {
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
};
#endif
#if AP_nBUF == 44 //hall 缓存容量
const t_uint16 cntApPeriodGrp[AP_nBUF][2] = {
{1,23},
{2,24},
{3,25},
{4,26},
{5,27},
{6,28},
{7,29},
{8,30},
{9,31},
{10,32},
{11,33},
{12,34},
{13,35},
{14,36},
{15,37},
{16,38},
{17,39},
{18,40},
{19,41},
{20,42},
{21,43},
{22,0},
{23,1},
{24,2},
{25,3},
{26,4},
{27,5},
{28,6},
{29,7},
{30,8},
{31,9},
{32,10},
{33,11},
{34,12},
{35,13},
{36,14},
{37,15},
{38,16},
{39,17},
{40,18},
{41,19},
{42,20},
{43,21},
{0,22},
};
const t_uint16 cntApPreHiLoGrp[AP_nBUF] = {
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
};
#endif
#endif
#if _M_DRV_AP_ALGO_SOFT
const t_uint16 ApAlgoSoftLvlRate[AP_ALGO_AP_LVL_TOTAL][AP_ALGO_SOFT_LVL_TOTAL] =
{
{
AP_ALGO_AP_0_SOFT_LVL_0_RATE,
AP_ALGO_AP_0_SOFT_LVL_1_RATE,
AP_ALGO_AP_0_SOFT_LVL_2_RATE,
AP_ALGO_AP_0_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_1_SOFT_LVL_0_RATE,
AP_ALGO_AP_1_SOFT_LVL_1_RATE,
AP_ALGO_AP_1_SOFT_LVL_2_RATE,
AP_ALGO_AP_1_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_2_SOFT_LVL_0_RATE,
AP_ALGO_AP_2_SOFT_LVL_1_RATE,
AP_ALGO_AP_2_SOFT_LVL_2_RATE,
AP_ALGO_AP_2_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_3_SOFT_LVL_0_RATE,
AP_ALGO_AP_3_SOFT_LVL_1_RATE,
AP_ALGO_AP_3_SOFT_LVL_2_RATE,
AP_ALGO_AP_3_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_4_SOFT_LVL_0_RATE,
AP_ALGO_AP_4_SOFT_LVL_1_RATE,
AP_ALGO_AP_4_SOFT_LVL_2_RATE,
AP_ALGO_AP_4_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_5_SOFT_LVL_0_RATE,
AP_ALGO_AP_5_SOFT_LVL_1_RATE,
AP_ALGO_AP_5_SOFT_LVL_2_RATE,
AP_ALGO_AP_5_SOFT_LVL_3_RATE
},
{
AP_ALGO_AP_6_SOFT_LVL_0_RATE,
AP_ALGO_AP_6_SOFT_LVL_1_RATE,
AP_ALGO_AP_6_SOFT_LVL_2_RATE,
AP_ALGO_AP_6_SOFT_LVL_3_RATE
},
};
const t_uint16 ApAlgoSoftLvlCnt[AP_ALGO_SOFT_LVL_TOTAL] =
{
AP_ALGO_SOFT_LVL_0_CNT,
AP_ALGO_SOFT_LVL_1_CNT,
AP_ALGO_SOFT_LVL_2_CNT,
AP_ALGO_SOFT_LVL_3_CNT,
};
#endif
/* Code, declarations and definitions here will be preserved during code generation */
#if _M_DRV_AP_ALGO_HALL
inline bool HallAp_Algo(t_timer *T, t_uint16 n, t_uint16 curHi)
{
#if _M_TEST_9
t_uint32 tmp1,tmp2,tmp3;
#endif
if ((ALGO_HALL_K/(*(T+MOD(n-M0,T_LEN_MAX)))-ALGO_HALL_K/curHi) >= F)
{
#if _M_TEST_10
if (GetMCU_GPIOxO_PIN(0,7))
{
ClrMCU_GPIOxO_PIN(0,7);
}
else
{
SetMCU_GPIOxO_PIN(0,7);
}
#endif
return true;
}
#if VEHICLE_TYPE == A33
if ((ALGO_HALL_K/(*(T+MOD(n-M0,T_LEN_MAX)))-ALGO_HALL_K/(*(T+n))) >= A &&
(ALGO_HALL_K/(*(T+MOD(n-M0-M1,T_LEN_MAX)))-ALGO_HALL_K/(*(T+MOD(n-M1,T_LEN_MAX)))) >= B &&
(ALGO_HALL_K/(*(T+MOD(n-M0-M2,T_LEN_MAX)))-ALGO_HALL_K/(*(T+MOD(n-M2,T_LEN_MAX)))) >= C)
#endif
#if VEHICLE_TYPE == FY33
if ((ALGO_HALL_K/(*(T+MOD(n-M0,T_LEN_MAX)))-ALGO_HALL_K/(*(T+n))) >= A &&
(ALGO_HALL_K/(*(T+MOD(n-M0-M1,T_LEN_MAX)))-ALGO_HALL_K/(*(T+MOD(n-M1,T_LEN_MAX)))) >= B)
#endif
#if (VEHICLE_TYPE == TYPE_A || VEHICLE_TYPE == TYPE_1)
if ((ALGO_HALL_K/(*(T+MOD(n-M0,T_LEN_MAX)))-ALGO_HALL_K/curHi) >= A &&
(ALGO_HALL_K/(*(T+MOD(n-M3,T_LEN_MAX)))-ALGO_HALL_K/curHi) >= B)
#endif
{
#if _M_TEST_9
tmp1 = ALGO_HALL_K/(*(T+MOD(n-M0,T_LEN_MAX)));
tmp2 = ALGO_HALL_K/curHi;
tmp3 = tmp1-tmp2;
if (GetMCU_GPIOxO_PIN(0,7))
{
ClrMCU_GPIOxO_PIN(0,7);
}
else
{
SetMCU_GPIOxO_PIN(0,7);
}
#endif
return true;
}
return false;
}
#endif
#if _M_DRV_AP_HALL_DIR
inline bool ChkstHallHiLoHi(st_ap *pAp)
{
if (stHallHiLo == 1)
{
return true;
}
else
{
return false;
}
}
inline bool ChkstHallHiLoLo(st_ap *pAp)
{
if (stHallHiLo == -1)
{
return true;
}
else
{
return false;
}
}
inline t_bool ChkIC1lLo(st_ap *pAp)
{
if (stApRx == AP_RX_STAT_UP_FST || stApRx == AP_RX_STAT_UP) //chk lo
{
return true;
}
return false;
}
inline t_bool ChkIC1lHi(st_ap *pAp)
{
if (stApRx == AP_RX_STAT_DN_FST || stApRx == AP_RX_STAT_DN) //chk hi
{
return true;
}
return false;
}
inline void GetSetSharedCapDirUp(st_ap *pAp) //IC1上升沿方向判定,pAp代表IC2
{
#if _M_DRV_AP_HALL_FIX
if(!flgHallReversedFix)
{
#endif
if(ChkstHallHiLoHi(pAp))
{
SetSharedCapDir(-1);
}
else if(ChkstHallHiLoLo(pAp))
{
SetSharedCapDir(1);
}
else
{
SetSharedCapDir(0);
}
#if _M_DRV_AP_HALL_FIX
}
else
{
if(ChkstHallHiLoHi(pAp))
{
SetSharedCapDir(1);
}
else if(ChkstHallHiLoLo(pAp))
{
SetSharedCapDir(-1);
}
else
{
SetSha
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
汽车电子嵌入式编程车窗霍尔防产品夹源代码.rar (357个子文件)
DK104.a 817KB
DK104.Debug.cspy.bat 2KB
DK104.Release.cspy.bat 2KB
DK104.pbd.browse 2.08MB
drv_ap.c 103KB
srv_io.c 82KB
app_win.c 72KB
bk_lin.c 59KB
drv_mcu_ccp.c 21KB
drv_mcu_port.c 19KB
bk_key1.c 17KB
app_lin.c 14KB
bk_key.c 13KB
drv_mcu_port.c 10KB
srv_pwr.c 10KB
drv_mcu_can.c 9KB
drv_mcu_lin.c 9KB
drv_mcu_isr.c 8KB
drv_mcu_can.c 8KB
drv_mcu_port.c 7KB
bk_main.c 7KB
drv_mcu_port.c 7KB
drv_e520.c 7KB
srv_prism.c 7KB
drv_mcu_isr.c 7KB
srv_lin.c 6KB
drv_mcu_spi.c 6KB
drv_ap_ddw.c 6KB
drv_mcu_lin.c 5KB
drv_mcu_cpu.c 5KB
drv_mcu_ccp.c 5KB
cstartup_M.c 4KB
drv_lin.c 4KB
drv_eep.c 4KB
drv_ap_rrw.c 3KB
drv_ap_rlw.c 3KB
drv_ap_pdw.c 3KB
drv_mcu_tmr.c 3KB
drv_mcu_cpu.c 3KB
drv_mcu_cpu.c 3KB
drv_mcu_cpu.c 3KB
drv_mcu_spi.c 3KB
drv_mcu_spi.c 3KB
app.c 2KB
app_startprot.c 2KB
app_win_rrw.c 2KB
app_win_rlw.c 2KB
app_win_pdw.c 2KB
app_win_ddw.c 2KB
drv_mcu_ad.c 2KB
drv_mcu_uart.c 2KB
drv_ad_port.c 2KB
drv_mcu_ad.c 2KB
drv_mcu_spi.c 2KB
app_pwr.c 2KB
drv_mcu_ad.c 2KB
drv_mcu_tmr.c 2KB
drv.c 2KB
pwm_key_ddw.c 2KB
drv_mcu_kbi.c 2KB
drv_mcu_ad.c 2KB
drv_mcu_eep.c 1KB
drv_mcu_tmr.c 1KB
drv_mcu_isr.c 1KB
drv_mcu_isr.c 1KB
drv_mcu_ccp.c 1KB
drv_mcu_ccp.c 1KB
drv_mcu_tmr.c 1KB
drv_mcu_eep.c 1KB
drv_mcu_eep.c 1KB
drv_mcu_wdt.c 1KB
srv.c 1008B
app_lowbeam.c 990B
drv_mcu_port.pbi.cout 11KB
drv_mcu_wdt.pbi.cout 11KB
drv_mcu_lin.pbi.cout 11KB
drv_mcu_kbi.pbi.cout 11KB
drv_mcu_tmr.pbi.cout 11KB
drv_mcu_ccp.pbi.cout 11KB
drv_mcu_isr.pbi.cout 11KB
drv_mcu_cpu.pbi.cout 11KB
drv_mcu_spi.pbi.cout 11KB
drv_mcu_ad.pbi.cout 11KB
cstartup_M.pbi.cout 11KB
drv_ap_rlw.pbi.cout 11KB
drv_ap_ddw.pbi.cout 11KB
drv_ap_pdw.pbi.cout 11KB
drv_ap_rrw.pbi.cout 11KB
app_startprot.pbi.cout 11KB
drv_ap.pbi.cout 11KB
drv_eep.pbi.cout 11KB
app_win_pdw.pbi.cout 11KB
app_win_rlw.pbi.cout 11KB
app_win_rrw.pbi.cout 11KB
app_win_ddw.pbi.cout 11KB
drv_lin.pbi.cout 11KB
pwm_key_ddw.pbi.cout 11KB
app_lin.pbi.cout 11KB
app_win.pbi.cout 11KB
srv_lin.pbi.cout 11KB
共 357 条
- 1
- 2
- 3
- 4
天上人间555
- 粉丝: 71
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页