📄 minid0712.lis
字号:
0150 ;
0150 ; SEI(); //re-enable interrupts
0150 7894 sei
0152 .dbline -2
0152 L5:
0152 .dbline 0 ; func end
0152 0895 ret
0154 .dbend
0154 .dbfunc e main _main fV
.even
0154 _main::
0154 .dbline -1
0154 .dbline 117
0154 ;
0154 ; }
0154 ;
0154 ;
0154 ;
0154 ; void main(void)
0154 ; {
0154 .dbline 119
0154 ;
0154 ; init_devices();
0154 E0DF rcall _init_devices
0156 .dbline 121
0156 ;
0156 ; PIDInit (&sPID);
0156 00E0 ldi R16,<_sPID
0158 10E0 ldi R17,>_sPID
015A 00D0 rcall _PIDInit
015C .dbline 122
015C ; START_ADC();
015C 8BEE ldi R24,235
015E 80937A00 sts 122,R24
0162 .dbline 123
0162 ; SumDu = 0; //增量式PID清零
0162 40E0 ldi R20,0
0164 50E0 ldi R21,0
0166 60E0 ldi R22,0
0168 70E0 ldi R23,0
016A 50934300 sts _SumDu+1,R21
016E 40934200 sts _SumDu,R20
0172 70934500 sts _SumDu+2+1,R23
0176 60934400 sts _SumDu+2,R22
017A 04C0 rjmp L8
017C L7:
017C .dbline 126
017C .dbline 133
017C 00D0 rcall _det_err
017E .dbline 134
017E 2227 clr R18
0180 01E0 ldi R16,1
0182 00D0 rcall _electromagne_ctrl
0184 .dbline 135
0184 L8:
0184 .dbline 125
0184 FBCF rjmp L7
0186 X0:
0186 .dbline -2
0186 L6:
0186 .dbline 0 ; func end
0186 0895 ret
0188 .dbend
0188 .dbfunc e timer1_ovf_isr_ _timer1_ovf_isr_ fV
.even
0188 _timer1_ovf_isr_::
0188 .dbline -1
0188 .dbline 148
0188 ;
0188 ; while (1)
0188 ; {
0188 ; //if (g_flag10ms == 0xff)
0188 ; //{
0188 ; // g_flag10ms = 0;
0188 ;
0188 ; // STARTIIC(); //开始发送
0188 ; //}
0188 ; det_err();
0188 ; electromagne_ctrl(1,0);
0188 ; }//End while
0188 ;
0188 ;
0188 ; }
0188 ;
0188 ;
0188 ; // 10 ms 中断 一次
0188 ; // 需要提供低于220V 的信号g_singleLowVol
0188 ; // 电机停机信号g_MotorStop
0188 ; // 高于400V 的信号g_singleOverVol
0188 ; // 电机正在运行标志g_MotorRun
0188 ; // 电机速度小于10 RPM 标志g_LowSpeed
0188 ; void timer1_ovf_isr_(void)
0188 ; {
0188 .dbline 149
0188 ; if (!g_MotorRun)
0188 20903000 lds R2,_g_MotorRun
018C 2220 tst R2
018E 09F0 breq X1
0190 45C0 rjmp L11
0192 X1:
0192 .dbline 150
0192 ; {
0192 .dbline 151
0192 ; if (g_singleLowVol)
0192 20902F00 lds R2,_g_singleLowVol
0196 2220 tst R2
0198 51F0 breq L13
019A .dbline 152
019A ; {
019A .dbline 153
019A ; g_Lower220VCnt ++;
019A 80911B00 lds R24,_g_Lower220VCnt
019E 90911C00 lds R25,_g_Lower220VCnt+1
01A2 0196 adiw R24,1
01A4 90931C00 sts _g_Lower220VCnt+1,R25
01A8 80931B00 sts _g_Lower220VCnt,R24
01AC .dbline 154
01AC ; }
01AC 09C0 rjmp L14
01AE L13:
01AE .dbline 156
01AE ; else
01AE ; {
01AE .dbline 157
01AE ; g_Over220VCnt ++;
01AE 80911D00 lds R24,_g_Over220VCnt
01B2 90911E00 lds R25,_g_Over220VCnt+1
01B6 0196 adiw R24,1
01B8 90931E00 sts _g_Over220VCnt+1,R25
01BC 80931D00 sts _g_Over220VCnt,R24
01C0 .dbline 158
01C0 ; }
01C0 L14:
01C0 .dbline 159
01C0 ; if (g_Lower220VCnt + g_Over220VCnt > 300)
01C0 20901D00 lds R2,_g_Over220VCnt
01C4 30901E00 lds R3,_g_Over220VCnt+1
01C8 40901B00 lds R4,_g_Lower220VCnt
01CC 50901C00 lds R5,_g_Lower220VCnt+1
01D0 420C add R4,R2
01D2 531C adc R5,R3
01D4 8CE2 ldi R24,300
01D6 91E0 ldi R25,1
01D8 8415 cp R24,R4
01DA 9505 cpc R25,R5
01DC C0F4 brsh L15
01DE .dbline 160
01DE ; {
01DE .dbline 161
01DE ; if (g_Lower220VCnt > g_Over220VCnt)
01DE 40901B00 lds R4,_g_Lower220VCnt
01E2 50901C00 lds R5,_g_Lower220VCnt+1
01E6 2414 cp R2,R4
01E8 3504 cpc R3,R5
01EA 20F4 brsh L17
01EC .dbline 162
01EC ; {
01EC .dbline 163
01EC ; g_LowVol = 1;
01EC 81E0 ldi R24,1
01EE 80932D00 sts _g_LowVol,R24
01F2 .dbline 164
01F2 ; }
01F2 03C0 rjmp L18
01F4 L17:
01F4 .dbline 166
01F4 ; else
01F4 ; {
01F4 .dbline 167
01F4 ; g_LowVol = 0;
01F4 2224 clr R2
01F6 20922D00 sts _g_LowVol,R2
01FA .dbline 168
01FA ; }
01FA L18:
01FA .dbline 169
01FA ; g_Lower220VCnt = 0;
01FA 2224 clr R2
01FC 3324 clr R3
01FE 30921C00 sts _g_Lower220VCnt+1,R3
0202 20921B00 sts _g_Lower220VCnt,R2
0206 .dbline 170
0206 ; g_Over220VCnt = 0;
0206 30921E00 sts _g_Over220VCnt+1,R3
020A 20921D00 sts _g_Over220VCnt,R2
020E .dbline 171
020E ; }
020E L15:
020E .dbline 172
020E ; g_LowSpeedCnt = 0;
020E 2224 clr R2
0210 3324 clr R3
0212 30921600 sts _g_LowSpeedCnt+1,R3
0216 20921500 sts _g_LowSpeedCnt,R2
021A .dbline 173
021A ; }
021A 30C0 rjmp L12
021C L11:
021C .dbline 175
021C ; else
021C ; {
021C .dbline 176
021C ; g_Lower220VCnt = 0;
021C 2224 clr R2
021E 3324 clr R3
0220 30921C00 sts _g_Lower220VCnt+1,R3
0224 20921B00 sts _g_Lower220VCnt,R2
0228 .dbline 177
0228 ; g_Over220VCnt = 0;
0228 30921E00 sts _g_Over220VCnt+1,R3
022C 20921D00 sts _g_Over220VCnt,R2
0230 .dbline 178
0230 ; if (g_LowSpeed)
0230 20902800 lds R2,_g_LowSpeed
0234 2220 tst R2
0236 51F0 breq L19
0238 .dbline 179
0238 ; {
0238 .dbline 180
0238 ; g_LowSpeedCnt ++;
0238 80911500 lds R24,_g_LowSpeedCnt
023C 90911600 lds R25,_g_LowSpeedCnt+1
0240 0196 adiw R24,1
0242 90931600 sts _g_LowSpeedCnt+1,R25
0246 80931500 sts _g_LowSpeedCnt,R24
024A .dbline 181
024A ; }
024A 06C0 rjmp L20
024C L19:
024C .dbline 183
024C ; else
024C ; {
024C .dbline 184
024C ; g_LowSpeedCnt = 0;
024C 2224 clr R2
024E 3324 clr R3
0250 30921600 sts _g_LowSpeedCnt+1,R3
0254 20921500 sts _g_LowSpeedCnt,R2
0258 .dbline 185
0258 ; }
0258 L20:
0258 .dbline 186
0258 ; if (g_LowSpeedCnt > 200)
0258 88EC ldi R24,200
025A 90E0 ldi R25,0
025C 20901500 lds R2,_g_LowSpeedCnt
0260 30901600 lds R3,_g_LowSpeedCnt+1
0264 8215 cp R24,R2
0266 9305 cpc R25,R3
0268 48F4 brsh L21
026A .dbline 187
026A ; {
026A .dbline 188
026A ; g_MotorBlock = 1;
026A 81E0 ldi R24,1
026C 80932900 sts _g_MotorBlock,R24
0270 .dbline 189
0270 ; g_LowSpeedCnt = 0;
0270 2224 clr R2
0272 3324 clr R3
0274 30921600 sts _g_LowSpeedCnt+1,R3
0278 20921500 sts _g_LowSpeedCnt,R2
027C .dbline 190
027C ; }
027C L21:
027C .dbline 191
027C ; }
027C L12:
027C .dbline 194
027C ;
027C ;
027C ; if (g_SingleOverVol)
027C 20902B00 lds R2,_g_SingleOverVol
0280 2220 tst R2
0282 51F0 breq L23
0284 .dbline 195
0284 ; {
0284 .dbline 196
0284 ; g_Lower400VCnt ++;
0284 80911700 lds R24,_g_Lower400VCnt
0288 90911800 lds R25,_g_Lower400VCnt+1
028C 0196 adiw R24,1
028E 90931800 sts _g_Lower400VCnt+1,R25
0292 80931700 sts _g_Lower400VCnt,R24
0296 .dbline 197
0296 ; }
0296 09C0 rjmp L24
0298 L23:
0298 .dbline 199
0298 ; else
0298 ; {
0298 .dbline 200
0298 ; g_Over400VCnt ++;
0298 80911900 lds R24,_g_Over400VCnt
029C 90911A00 lds R25,_g_Over400VCnt+1
02A0 0196 adiw R24,1
02A2 90931A00 sts _g_Over400VCnt+1,R25
02A6 80931900 sts _g_Over400VCnt,R24
02AA .dbline 201
02AA ; }
02AA L24:
02AA .dbline 202
02AA ; if (g_Lower400VCnt + g_Over400VCnt > 300)
02AA 20901900 lds R2,_g_Over400VCnt
02AE 30901A00 lds R3,_g_Over400VCnt+1
02B2 40901700 lds R4,_g_Lower400VCnt
02B6 50901800 lds R5,_g_Lower400VCnt+1
02BA 420C add R4,R2
02BC 531C adc R5,R3
02BE 8CE2 ldi R24,300
02C0 91E0 ldi R25,1
02C2 8415 cp R24,R4
02C4 9505 cpc R25,R5
02C6 C0F4 brsh L25
02C8 .dbline 203
02C8 ; {
02C8 .dbline 204
02C8 ; if (g_Lower400VCnt >= g_Over400VCnt)
02C8 40901700 lds R4,_g_Lower400VCnt
02CC 50901800 lds R5,_g_Lower400VCnt+1
02D0 4214 cp R4,R2
02D2 5304 cpc R5,R3
02D4 20F0 brlo L27
02D6 .dbline 205
02D6 ; {
02D6 .dbline 206
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -