📄 main.p1
字号:
[; ;lib\PWM.h: 39: extern void PWM_Stop(void);
[; ;lib\PWM.h: 40: extern BYTE PWM_bReadCounter(void);
[; ;lib\PWM.h: 41: extern void PWM_WritePeriod(BYTE bPeriod);
[; ;lib\PWM.h: 42: extern BYTE PWM_bReadPulseWidth(void);
[; ;lib\PWM.h: 43: extern void PWM_WritePulseWidth(BYTE bPulseWidth);
[; ;lib\PWM.h: 48: extern BYTE bPWM_ReadCounter(void);
[; ;lib\PWM.h: 49: extern BYTE bPWM_ReadPulseWidth(void);
[; ;lib\PWM.h: 74: BYTE PWM_COUNTER_REG;
[; ;lib\PWM.h: 76: BYTE PWM_PERIOD_REG;
[; ;lib\PWM.h: 78: BYTE PWM_COMPARE_REG;
[; ;lib\PWM.h: 80: BYTE PWM_CONTROL_REG;
[; ;lib\PWM.h: 82: BYTE PWM_FUNC_REG;
[; ;lib\PWM.h: 84: BYTE PWM_INPUT_REG;
[; ;lib\PWM.h: 86: BYTE PWM_OUTPUT_REG;
[; ;lib\PWM.h: 88: BYTE PWM_INT_REG;
[; ;lib\SAR8.h: 91: extern void SAR8_Start(void);
[; ;lib\SAR8.h: 92: extern void SAR8_Stop(void);
[; ;lib\SAR8.h: 93: extern void SAR8_EnableInt(void);
[; ;lib\SAR8.h: 94: extern void SAR8_DisableInt(void);
[; ;lib\SAR8.h: 95: extern void SAR8_Trigger(void);
[; ;lib\SAR8.h: 96: extern BYTE SAR8_fIsDataAvailable(void);
[; ;lib\SAR8.h: 97: extern BYTE SAR8_bGetData(void);
[; ;lib\SAR8.h: 98: extern void SAR8_SelectADCChannel(BYTE bChannel);
[; ;lib\SAR8.h: 99: extern void SAR8_AutoAlign(BYTE bAlignMode);
[; ;lib\SAR8.h: 100: extern void SAR8_SetAlignPath(BYTE bAlignPath);
[; ;lib\SAR8.h: 101: extern void SAR8_SetHighAlignSrc(BYTE bAlignSrc);
[; ;lib\SAR8.h: 102: extern void SAR8_SetLowAlignSrc(BYTE bAlignSrc);
[; ;lib\SAR8.h: 103: extern void SAR8_SetCmpL(BYTE bValue);
[; ;lib\SAR8.h: 104: extern void SAR8_SetCmpH(BYTE bValue);
[; ;lib\SAR8.h: 105: extern void SAR8_SetScale(BYTE bScaleMode);
[; ;lib\SAR8.h: 106: extern void SAR8_SetRunMode(BYTE bRunMode);
[; ;lib\SAR8.h: 112: BYTE SAR8_INT_REG;
[; ;lib\SAR8.h: 115: BYTE SAR8_CONTROL_0_REG;
[; ;lib\SAR8.h: 118: BYTE SAR8_CONTROL_1_REG;
[; ;lib\SAR8.h: 121: BYTE SAR8_CONTROL_2_REG;
[; ;lib\SAR8.h: 124: BYTE SAR8_TRIGGER_SRC_REG;
[; ;lib\SAR8.h: 127: BYTE SAR8_COMPARE_LO_REG;
[; ;lib\SAR8.h: 130: BYTE SAR8_COMPARE_HI_REG;
[; ;lib\SAR8.h: 133: BYTE SAR8_DATA_LO_REG;
"40 ./i2c.h
[s S11 `uc -> 10 `i ]
[n S11 . b ]
[v _TYPE_I2CS_STRUCT `S11 1 t ]
[; ;i2c.h: 35: typedef struct
[; ;i2c.h: 36: {
[; ;i2c.h: 38: BYTE b[10];
[; ;i2c.h: 40: }TYPE_I2CS_STRUCT;
[; ;i2c.h: 42: extern TYPE_I2CS_STRUCT I2CSBuff;
[; ;i2c.h: 45: void vI2CInit(void);
"13 ./main.c
[v F534 `(v 1 tf ]
[; ;main.c: 13: void HALL_ISR_C(void);
"14
[v F537 `(v 1 tf ]
[; ;main.c: 14: void PWM_ISR_C(void);
"15
[v F540 `(v 1 tf ]
[; ;main.c: 15: void COMP_ISR_C(void);
[; ;main.c: 16: void system_init(void);
[; ;main.c: 17: void lock_motor_50us(PROC_PROCESS *ppc);
[; ;main.c: 18: void get_work_parameters(SYSSTAT *st);
[; ;main.c: 19: void check_cruise_entry(SYSSTAT *st,PROC_PROCESS *ppc);
[; ;main.c: 20: void init_bus_current(ADC *adres,PROC_PROCESS *ppc,SYSSTAT *st);
[; ;main.c: 21: void adjust_motor_run_maxcurrent(PROC_PROCESS *ppc,SYSSTAT *st);
[; ;main.c: 22: void battery_voltage_detect(ADC *adr,BATVCHK *bv,SYSSTAT *st,PROC_PROCESS *ppc);
[; ;main.c: 23: void process_speed_command(SYSSTAT *st,PROC_PROCESS *ppc,ADC *adres);
[; ;main.c: 24: void inactive_ctrl(SYSSTAT *st,PROC_PROCESS *ppc);
[; ;main.c: 25: void delay_cycle(unsigned int cs);
[; ;main.c: 26: void motor_ctrlout(PROC_PROCESS *ppc,SYSSTAT *st);
[; ;main.c: 27: unsigned char system_status_indicator(DISP_STRU *dsreg,SYSSTAT *st);
[; ;main.c: 28: unsigned char get_ctrlout_setni(PROC_PROCESS *ppc,SYSSTAT *st);
[; ;main.c: 29: unsigned char LEAKAGE_CURRENT_CHECK(SYSSTAT *st,PROC_PROCESS *ppc,ADC *sp);
[; ;main.c: 30: unsigned char check_mosfet(SYSSTAT *st,PROC_PROCESS *ppc,ADC *sp,unsigned char intfg);
[; ;main.c: 31: unsigned char block_run_process(SYSSTAT *st,PROC_PROCESS *ppc);
[; ;main.c: 32: unsigned char sample_adc(unsigned char chan);
"33
[v _cruisein_count `uc 1 e ]
[v _halfsecond `uc 1 e ]
[; ;main.c: 33: unsigned char cruisein_count,halfsecond;
[; ;main.c: 34: void debugled(void);
"35
[v _proc_process `S5 1 e ]
[; ;main.c: 35: PROC_PROCESS proc_process;
"36
[v _adc `S1 1 e ]
[; ;main.c: 36: ADC adc;
"37
[v _sysstat `S3 1 e ]
[; ;main.c: 37: SYSSTAT sysstat;
"38
[v _batvchk `S9 1 e ]
[; ;main.c: 38: BATVCHK batvchk;
"39
[v _dispreg `S7 1 e ]
[; ;main.c: 39: DISP_STRU dispreg;
"41
[v _debugled `(v 1 ef ]
{
[; ;main.c: 40: void debugled(void)
[; ;main.c: 41: {
[e :U _debugled ]
[f ]
[; ;main.c: 42: while(1){
"42
[e :U 14 ]
[; ;main.c: 43: proc_process.msg.PRT2DRbak&=~0x40;
"43
[e =& . . _proc_process 0 28 -> ~ -> 64 `i `uc ]
[; ;main.c: 44: PRT2DR=proc_process.msg.PRT2DRbak;
"44
[e = _PRT2DR . . _proc_process 0 28 ]
[; ;main.c: 45: delay_cycle(200);
"25
[v _delay_cycle `(v 0 ef1`ui ]
"45
[e ( _delay_cycle (1
-> -> 200 `i `ui ]
[; ;main.c: 46: proc_process.msg.PRT2DRbak|=0x40;
"46
[e =| . . _proc_process 0 28 -> -> 64 `i `uc ]
[; ;main.c: 47: PRT2DR=proc_process.msg.PRT2DRbak;
"47
[e = _PRT2DR . . _proc_process 0 28 ]
[; ;main.c: 48: delay_cycle(200);
"48
[e ( _delay_cycle (1
-> -> 200 `i `ui ]
"49
[e :U 13 ]
"42
[e $U 14 ]
[e :U 15 ]
"50
[; ;main.c: 49: }
[; ;main.c: 50: }
[e :UE 12 ]
}
"52
[v _debug_motor `(v 1 ef ]
{
[; ;main.c: 51: void debug_motor(void)
[; ;main.c: 52: {
[e :U _debug_motor ]
[f ]
[; ;main.c: 53: PWM_WritePulseWidth(0x7f);
"43 ./lib\PWM.h
[v _PWM_WritePulseWidth `BF258 0 e ]
"53 ./main.c
[e ( _PWM_WritePulseWidth (1
-> -> 127 `i `uc ]
[; ;main.c: 54: proc_process.msg.position_prev=0x1;
"54
[e = . . _proc_process 0 3 -> -> 1 `i `uc ]
[; ;main.c: 55: proc_process.msg.pwmena=3;
"55
[e = . . _proc_process 0 0 -> -> 3 `i `uc ]
[; ;main.c: 56: while(1){
"56
[e :U 18 ]
[; ;main.c: 57: set_next_ctrlseq(&sysstat,&proc_process);
"4 ./isr.h
[v _set_next_ctrlseq `(v 0 ef2`*S3`*S5 ]
"57 ./main.c
[e ( _set_next_ctrlseq (2
, &U _sysstat &U _proc_process ]
[; ;main.c: 58: proc_process.msg.portena=proc_process.msg.ctrlout_set;
"58
[e = . . _proc_process 0 1 . . _proc_process 0 5 ]
[; ;main.c: 59: motor_ctrlout(&proc_process,&sysstat);
"26
[v _motor_ctrlout `(v 0 ef2`*S5`*S3 ]
"59
[e ( _motor_ctrlout (2
, &U _proc_process &U _sysstat ]
[; ;main.c: 60: delay_cycle(20000);
"60
[e ( _delay_cycle (1
-> -> 20000 `i `ui ]
[; ;main.c: 61: proc_process.msg.position_prev=proc_process.msg.position_next;
"61
[e = . . _proc_process 0 3 . . _proc_process 0 4 ]
"62
[e :U 17 ]
"56
[e $U 18 ]
[e :U 19 ]
"63
[; ;main.c: 62: }
[; ;main.c: 63: }
[e :UE 16 ]
}
"65
[v _main `(v 1 ef ]
[p mainexit ]
{
[; ;main.c: 64: void main()
[; ;main.c: 65: {
[e :U _main ]
[f ]
"66
[v _tt2 `ui 1 a ]
[; ;main.c: 66: unsigned tt2;
[; ;main.c: 67: system_init();
"16
[v _system_init `(v 0 ef ]
"67
[e ( _system_init .. ]
[; ;main.c: 68: vI2CInit();
"45 ./i2c.h
[v _vI2CInit `(v 0 ef ]
"68 ./main.c
[e ( _vI2CInit .. ]
[; ;main.c: 69: lock_motor_50us(&proc_process);
"17
[v _lock_motor_50us `(v 0 ef1`*S5 ]
"69
[e ( _lock_motor_50us (1
&U _proc_process ]
[; ;main.c: 70: get_work_parameters(&sysstat);
"18
[v _get_work_parameters `(v 0 ef1`*S3 ]
"70
[e ( _get_work_parameters (1
&U _sysstat ]
[; ;main.c: 72: init_bus_current(&adc,&proc_process,&sysstat);
"20
[v _init_bus_current `(v 0 ef3`*S1`*S5`*S3 ]
"72
[e ( _init_bus_current (3
, , &U _adc &U _proc_process &U _sysstat ]
[; ;main.c: 73: check_mosfet(&sysstat,&proc_process,&adc,0);
"30
[v _check_mosfet `(uc 0 ef4`*S3`*S5`*S1`uc ]
"73
[e ( _check_mosfet (4
, , , &U _sysstat &U _proc_process &U _adc -> -> 0 `i `uc ]
[; ;main.c: 74: adc.msg.battery_voltage=sample_adc(6*8);
"32
[v _sample_adc `(uc 0 ef1`uc ]
"74
[e = . . _adc 0 2 ( _sample_adc (1
-> * -> 6 `i -> 8 `i `uc ]
[; ;main.c: 75: adc.msg.brake_voltage=sample_adc(4*8);
"75
[e = . . _adc 0 4 ( _sample_adc (1
-> * -> 4 `i -> 8 `i `uc ]
[; ;main.c: 76: PWM_Start();
"38 ./lib\PWM.h
[v _PWM_Start `BF243 0 e ]
"76 ./main.c
[e ( _PWM_Start .. ]
[; ;main.c: 77: PWM_EnableInt();
"36 ./lib\PWM.h
[v _PWM_EnableInt `BF237 0 e ]
"77 ./main.c
[e ( _PWM_EnableInt .. ]
[; ;main.c: 79: INT_MSK0 = INT_MSK0 | 0X22;
"79
[e = _INT_MSK0 -> | -> _INT_MSK0 `i -> 34 `i `uc ]
[; ;main.c: 80: PRT2IE = 0X7;
"80
[e = _PRT2IE -> -> 7 `i `uc ]
[; ;main.c: 81: adc.msg.samplechannel=2;
"81
[e = . . _adc 0 0 -> -> 2 `i `uc ]
[; ;main.c: 82: while(ADC_CR0&(0x04))
"82
[e $U 21 ]
[e :U 22 ]
[; ;main.c: 83: {
[; ;main.c: 84: tt2=ADC_DL;
"84
[e = _tt2 -> _ADC_DL `ui ]
"85
[e :U 21 ]
"82
[e $ != & -> _ADC_CR0 `i -> 4 `i -> 0 `i 22 ]
[e :U 23 ]
[; ;main.c: 85: }
[; ;main.c: 86: ADC_CR0=6*8+(0x01)+(0x02);
"86
[e = _ADC_CR0 -> + + * -> 6 `i -> 8 `i -> 1 `i -> 2 `i `uc ]
[; ;main.c: 87: asm("or F, 01h");
"87
[; or F, 01h ;#
[; ;main.c: 88: while(1)
"88
[e :U 25 ]
[; ;main.c: 89: {
[; ;main.c: 90: I2CSBuff.b[0]=sysstat.msg.st0;
"42 ./i2c.h
[v _I2CSBuff `S11 0 e ]
"90 ./main.c
[e = *U + &U . _I2CSBuff 0 * -> -> -> 0 `i `ui `ux -> -> # `uc `ui `ux . . _sysstat 0 0 ]
[; ;main.c: 91: I2CSBuff.b[1]=proc_process.msg.position_prev;
"91
[e = *U + &U . _I2CSBuff 0 * -> -> -> 1 `i `ui `ux -> -> # `uc `ui `ux . . _proc_process 0 3 ]
[; ;main.c: 92: adjust_motor_run_maxcurrent(&proc_process,&sysstat);
"21
[v _adjust_motor_run_maxcurrent `(v 0 ef2`*S5`*S3 ]
"92
[e ( _adjust_motor_run_maxcurrent (2
, &U _proc_process &U _sysstat ]
[; ;main.c: 94: if(sysstat.msg.st3&2)
"94
[e $ ! != & -> . . _sysstat 0 3 `i -> 2 `i -> 0 `i 27 ]
[; ;main.c: 95: {
[; ;main.c: 96: sysstat.msg.st3&=~2;
"96
[e =& . . _sysstat 0 3 -> ~ -> 2 `i `uc ]
[; ;main.c: 97: check_cruise_entry(&sysstat,&proc_process);
"19
[v _check_cruise_entry `(v 0 ef2`*S3`*S5 ]
"97
[e ( _check_cruise_entry (2
, &U _sysstat &U _proc_process ]
[; ;main.c: 98: process_speed_command(&sysstat,&proc_process,&adc);
"232 ./para.h
[v _process_speed_command `(v 0 ef3`*S3`*S5`*S1 ]
"98 ./main.c
[e ( _process_speed_command (3
, , &U _sysstat &U _proc_process &U _adc ]
[; ;main.c: 99: battery_voltage_detect(&adc,&batvchk,&sysstat,&proc_process);
"22
[v _battery_voltage_detect `(v 0 ef4`*S1`*S9`*S3`*S5 ]
"99
[e ( _battery_voltage_detect (4
, , , &U _adc &U _batvchk &U _sysstat &U _proc_process ]
[; ;main.c: 100: if(halfsecond>0x8){
"100
[e $ ! > -> _halfsecond `i -> 8 `i 28 ]
[; ;main.c: 101: halfsecond=0;
"101
[e = _halfsecond -> -> 0 `i `uc ]
[; ;main.c: 102: block_run_process(&sysstat,&proc_process);
"31
[v _block_run_process `(uc 0 ef2`*S3`*S5 ]
"102
[e ( _block_run_process (2
, &U _sysstat &U _proc_process ]
[; ;main.c: 103: sysstat.msg.st3^=1;
"103
[e =^ . . _sysstat 0 3 -> -> 1 `i `uc ]
"104
[; ;main.c: 104: }
[e $U 29 ]
"105
[e :U 28 ]
[; ;main.c: 105: else
[; ;main.c: 106: halfsecond++;
"106
[e ++ _halfsecond -> -> 1 `i `uc ]
[e :U 29 ]
[; ;main.c: 107: system_status_indicator(&dispreg,&sysstat);
"27
[v _system_status_indicator `(uc 0 ef2`*S7`*S3 ]
"107
[e ( _system_status_indicator (2
, &U _dispreg &U _sysstat ]
"108
[e :U 27 ]
"109
[e :U 24 ]
"88
[e $U 25 ]
[e :U 26 ]
"110
[; ;main.c: 108: }
[; ;main.c: 109: }
[; ;main.c: 110: }
[e :UE 20 ]
}
"112
[v _system_init `(v 1 ef ]
{
[; ;main.c: 111: void system_init(void)
[; ;main.c: 112: {
[e :U _system_init ]
[f ]
"113
[v _i `uc 1 a ]
[; ;main.c: 113: unsigned char i;
[; ;main.c: 114: i=0;
"114
[e = _i -> -> 0 `i `uc ]
[; ;main.c: 115: while(i<39)
"115
[e $U 31 ]
[e :U 32 ]
[; ;main.c: 116: {
[; ;main.c: 117: proc_process.val[i]=0;
"117
[e = *U + &U . _proc_process 1 * -> _i `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 118: i++;
"118
[e ++ _i -> -> 1 `i `uc ]
"119
[e :U 31 ]
"115
[e $ < -> _i `i -> 39 `i 32 ]
[e :U 33 ]
[; ;main.c: 119: }
[; ;main.c: 120: sysstat.val[0]=0;
"120
[e = *U + &U . _sysstat 1 * -> -> -> 0 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 121: sysstat.val[1]=0;
"121
[e = *U + &U . _sysstat 1 * -> -> -> 1 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 122: sysstat.val[2]=0;
"122
[e = *U + &U . _sysstat 1 * -> -> -> 2 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 123: sysstat.val[3]=0;
"123
[e = *U + &U . _sysstat 1 * -> -> -> 3 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 124: sysstat.msg.st1|=0x40;
"124
[e =| . . _sysstat 0 1 -> -> 64 `i `uc ]
[; ;main.c: 125: adc.val[0]=0;
"125
[e = *U + &U . _adc 1 * -> -> -> 0 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 126: adc.val[1]=0;
"126
[e = *U + &U . _adc 1 * -> -> -> 1 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 127: adc.val[2]=0;
"127
[e = *U + &U . _adc 1 * -> -> -> 2 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 128: adc.val[3]=0;
"128
[e = *U + &U . _adc 1 * -> -> -> 3 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 129: adc.val[4]=0;
"129
[e = *U + &U . _adc 1 * -> -> -> 4 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 130: batvchk.val[0]=0;
"130
[e = *U + &U . _batvchk 1 * -> -> -> 0 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 131: batvchk.val[1]=0;
"131
[e = *U + &U . _batvchk 1 * -> -> -> 1 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 132: batvchk.val[2]=0;
"132
[e = *U + &U . _batvchk 1 * -> -> -> 2 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 133: batvchk.val[3]=0;
"133
[e = *U + &U . _batvchk 1 * -> -> -> 3 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 134: dispreg.val[0]=0;
"134
[e = *U + &U . _dispreg 1 * -> -> -> 0 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 135: dispreg.val[1]=0;
"135
[e = *U + &U . _dispreg 1 * -> -> -> 1 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 136: dispreg.val[2]=0;
"136
[e = *U + &U . _dispreg 1 * -> -> -> 2 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 137: dispreg.val[3]=0;
"137
[e = *U + &U . _dispreg 1 * -> -> -> 3 `i `ui `ux -> -> # `uc `ui `ux -> -> 0 `i `uc ]
[; ;main.c: 139: inactive_ctrl(&sysstat,&proc_process);
"24
[v _inactive_ctrl `(v 0 ef2`*S3`*S5 ]
"139
[e ( _inactive_ctrl (2
, &U _sysstat &U _proc_process ]
[; ;main.c: 141: ADC_CR0 = ((0x00)>>1)|(0x01);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -