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 + -
显示快捷键?