para.h.bak
来自「PSOC 电动自行车代码 器件采用CYPRESS新电动自行车器件CY8C245」· BAK 代码 · 共 237 行
BAK
237 行
// SARADC_CR0
#define PWM_PD 255
#define TS_SAMPLE_MIN 0x3b
#define TS_SAMPLE_MAX 0x95
#define ts_sample_maxlimit 0xe0
#define HALFSECOND 0x8
#define SHUTOFF_1ST_MAXCURRENT 0x28 //28
#define LOWSPEEDRUN_MAXCURRENT 0x38 //38
#define SLOW_POSALT_CNT_SV 0X04
#define SHUTOFF_STEP2ND_DELAY 0x04
#define SHUTOFF_STEP1ST_DELAY 0x02
#define CONTINUE_SLOW_POSALT_ACCCNT_SV 0X14
#define BATTERY_RECOVER_ONTIME 0X3D
#define HLOADER_BATLV_VALID_ONTIME 0x30 //; LOW VOLTAGE VALID CHECK ONTIMER VALUE UNDER HEAVY LOADER
#define LLOADER_BATLV_VALID_ONTIME 0X0F //; LOW VOLTAGE VALID CHECK ONTIMER VALUE UNDER LIGHT LOADER
#define MOTORV48 0xab
#define MOTORV36 0x88
//48v //36v
#define NORMAL_BATTERY_V_WITH_NOLOADER MOTORV36
#define NORMAL_BATTERY_V_WITH_LOADER (MOTORV36-0x10)
#define MAX_BATTERY_VOLTAGE_ERR 0x15
#define MAX_BVE_EQ_IERR 0X1E
// adc_channel b6~3 adc_data_rdy b2 start/busy b1 adcen b0
#define battery_v_chan 6*8
#define brake_in_chan 4*8
#define ts_chan 5*8
#define buscurrent_chan 9*8 //CT2
//PRT0DR input
#define cruise_sele_ena_chan 2*8 //p0.2
#define abs_sele_ena_chan 0*8 //p0.0
#define hallphase_sele_ena_chan 1*8 //p0.1
#define MASKOPRT1DR 3
#define MASKOPRT2DR 0x3f
// ADC_STRU.sample_channel bit definition
#define BRAKE 1
#define BATTERY 2
#define TS 4
#define BUSCURRENT 8
// PRT2DR hall input
#define hall_a 1 //p2.0
#define hall_b 2 //p2.1
#define hall_c 4 //p2.2
#define HALLINPUT (PRT2DR&0x7)
// PRT1DR PRT2DR PWM ouput
#define PWML0 0x04 //p1.2
#define PWML1 0x20 //p1.5
#define PWML2 0x40 //p1.6
#define PWMH0 0x08 //p1.3
#define PWMH1 0x10 //p1.4
#define PWMH2 0x80 //p1.7
#define MASKPWMH (PWMH2+PWMH1+PWMH0)
#define MASKPWML (PWML2+PWML1+PWML0)
#define CRUISE_IN (PRT2DR&0x8) //p2.3
// display ouput
#define Low_BATV_disp (PRT2DR&0x20) //p2.5
#define cruise_disp (PRT2DR&0x10) //p2.4
#define abs_disp (PRT2DR&0x80) //p2.7
#define alarm (PRT0DR&0x08) //p0.3
#define LEDPORT (PRT2DR&0x40) //p2.6
// TIME_STRU.state bits definition
typedef union _ADC{
struct
{
unsigned char samplechannel;
unsigned char bus_current;
unsigned char battery_voltage;
unsigned char ts_voltage;
unsigned char brake_voltage;
}msg;
unsigned char val[5];
}ADC;
//=====st0 bits definition
#define bitBRAKE_LEVEL 1
#define bitcruise_ena 2
#define bithallphase60 4
#define bitabs_ena 8
#define bitcruise_on 0x10
#define bitBRAKE_VALID 0x20
#define bitABS_BRAKE_ENA 0x40
#define bitCTRL_PORT_INACTIVE 0x80
//=====st1 bits definition
#define bitmotor_run 1
#define bitovi_faultint 2
#define bitLOW_BATTERY 4
#define bitSSIDE_DRV_LEAKAGE_OVI 8
#define bitHSIDE_DRV_LEAKAGE_OVI 0x10
#define bitinvalid_position 0x20
#define bitts_reset 0x40
#define bithall_err 0x80
//=====st2 bits definition
#define bitposition_change 1
#define bitBLOCK_RUN_P1S_OK 2
#define bitBLOCK_RUN_P2S_OK 4
#define bitABS_BRAKE_OK 8
#define bitABS_BRAKE_FINALDELAY 0x10
#define bitcruisein_altfg 0x20
#define bitaltout_seqcfg 0x40
#define bitABS_DOTBRAKE 0x80
//=====st3 bits definition
#define bithalfs 1
#define bitmain_loop_timerce 2
#define bitlow_batv_disp 4
#define bitCRUISE_DISP 8
#define bitABS_DISP 0x10
#define bitledst 0x20
#define bitlowsp_proc 0x40
#define bitABSentry_set 0x80
typedef union _SYSSTATE
{
struct
{
unsigned char st0;
/*
#define bitBRAKE_LEVEL 1
#define bitcruise_ena 2
#define bithallphase60 4
#define bitabs_ena 8
#define bitcruise_on 0x10
#define bitBRAKE_VALID 0x20
#define bitABS_BRAKE_ENA 0x40
#define bitCTRL_PORT_INACTIVE 0x80
*/
unsigned char st1;
/*
#define bitmotor_run 1
#define bitovi_faultint 2
#define bitLOW_BATTERY 4
#define bitSSIDE_DRV_LEAKAGE_OVI 8
#define bitHSIDE_DRV_LEAKAGE_OVI 0x10
#define bitinvalid_position 0x20
#define bitts_reset 0x40
#define bithall_err 0x80
*/
unsigned char st2;
/*
#define bitposition_change 1
#define bitBLOCK_RUN_P1S_OK 2
#define bitBLOCK_RUN_P2S_OK 4
#define bitABS_BRAKE_OK 8
#define bitABS_BRAKE_FINALDELAY 0x10
#define bitcruisein_altfg 0x20
#define bitaltout_seqcfg 0x40
#define bitABS_DOTBRAKE 0x80
*/
unsigned char st3;
/*
#define bithalfs 1
#define bitmain_loop_timerce 2
#define bitlow_batv_disp 4
#define bitCRUISE_DISP 8
#define bitABS_DISP 0x10
#define bitledst 0x20
#define bitlowsp_proc 0x40
*/
}msg;
unsigned char val[4];
}SYSSTAT;
#define bitPWMON 1
#define bitLPWMON 2
typedef union _PROC_PROCESS
{
struct
{
unsigned char pwmena;
unsigned char portena;
unsigned char duty_cycle;
unsigned char position_prev;
unsigned char position_next;
unsigned char ctrlout_set;
unsigned char speed_command;
unsigned char speed_profile;//
unsigned char speed_given;
unsigned char cur_ctrlport_set;
unsigned char current_given;
unsigned char LSPWM_SWITCH_I;
unsigned char max_leakagecurrent;
unsigned char RATED_CURRENT;
unsigned char current_dcoffset;
unsigned char IERR_BY_BATDOWN;//
unsigned char OV_MINRATEDI_ERR;
unsigned char OV_RATEDT_ERR;
unsigned char position_change_cnt_unit;
unsigned char position_preset_errcnt;
unsigned char pos_alt_acccounter;
unsigned char count;
unsigned char block_run_timer;
unsigned char HEBMF_CURRENT;
unsigned char LEBMF_CURRENT;
unsigned int prev_pos_ontime;
unsigned int cur_pos_ontime;//
unsigned char PRT1DRbak;
unsigned char PRT2DRbak;
unsigned int looptimer;//
unsigned int abs_delaycount;
unsigned int position_change_cnt;
unsigned char countgtr;
unsigned char ovcount;
// unsigned char abs_ctrlportset;
}msg;
unsigned char val[39];
}PROC_PROCESS;
typedef union _DISP_STRU{
struct{
unsigned char LED_DISP_TIMES;
unsigned char LED_DISP_TUNIT;
unsigned char LED_DISP_COUNTER;
unsigned char half_second;
}msg;
unsigned char val[4];
}DISP_STRU;
typedef union _BATVCHK
{
struct{
unsigned char IERR_BY_BATDOWN;
unsigned char FUL_BATTERY_CHK_ONTIMER;
unsigned char LOW_BATTERY_CHK_ONTIMER;
}msg;
unsigned char val[3];
}BATVCHK;
unsigned char reset_hallposition(SYSSTAT *st,PROC_PROCESS *ppc);
void process_speed_command(SYSSTAT *st,PROC_PROCESS *ppc,ADC *adres);
//pwmena: 1 0
// bitLPWMON bitPWMON
//portena: 7 6 5 4 3 2
// YL GL RL YH GH RH
//#pragma ioport COMP_CR0 :0x64
//BYTE COMP_CR0;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?