📄 main.ls
字号:
1906 0106 81 ret
1932 ; 221 void SendSystemDataRS232(void)
1932 ; 222 {
1933 switch .text
1934 0107 L7501_SendSystemDataRS232:
1937 ; 226 SCI_PutString("S="); // Speed Command
1939 0107 a603 ld a,#low(L1321)
1940 0109 ae03 ld x,#high(L1321)
1941 010b cd0000 call _SCI_PutString
1943 ; 227 PrintUnsignedInt(100 + (ADC_GetRV1()*10)); // Set by RV1 Trimmer
1945 010e cd0000 call _ADC_GetRV1
1947 0111 ae0a ld x,#10
1948 0113 42 mul x,a
1949 0114 ab64 add a,#100
1950 0116 2401 jrnc L21
1951 0118 5c inc x
1952 0119 L21:
1953 0119 cd0000 call _PrintUnsignedInt
1955 ; 253 SCI_PutString("\n\r"); // Go to next line
1957 011c a600 ld a,#low(L3321)
1958 011e ae00 ld x,#high(L3321)
1960 ; 255 }
1963 0120 cc0000 jp _SCI_PutString
2032 ; 269 void DoMotorControl( void )
2032 ; 270 {
2033 switch .text
2035 xref.b L1501_DoMotorControl$L
2036 0123 L1501_DoMotorControl:
2039 ; 275 if (MTC_GetRotorFreq() == 0)
2041 0123 cd0000 call _MTC_GetRotorFreq
2043 0126 4d tnz a
2044 0127 2608 jrne L7621
2045 0129 5d tnz x
2046 012a 2605 jrne L7621
2047 ; 277 State = FAULT;
2049 012c a606 ld a,#6
2050 012e c70000 ld L7401_State,a
2051 0131 L7621:
2052 ; 280 if ( ART_IsRegPeriodElapsed() )
2054 0131 cd0000 call _ART_IsRegPeriodElapsed
2056 0134 4d tnz a
2057 0135 277c jreq L1721
2058 ; 285 StatorFreq = MTC_GetStatorFreq();
2060 0137 cd0000 call _MTC_GetStatorFreq
2062 013a b7ff ld L1501_DoMotorControl$L-1,a
2063 013c bffe ld L1501_DoMotorControl$L-2,x
2064 ; 288 FreqCmd = 100 + (ADC_GetRV1()*10); // Set Speed between 10.0Hz and 266.0Hz
2066 013e cd0000 call _ADC_GetRV1
2068 0141 ae0a ld x,#10
2069 0143 42 mul x,a
2070 0144 ab64 add a,#100
2071 0146 2401 jrnc L02
2072 0148 5c inc x
2073 0149 L02:
2074 0149 b7fc ld L1501_DoMotorControl$L-4,a
2075 014b bffb ld L1501_DoMotorControl$L-5,x
2076 ; 294 SlipCmd = ACM_GetOptimumSlip( StatorFreq );
2078 014d b6ff ld a,L1501_DoMotorControl$L-1
2079 014f befe ld x,L1501_DoMotorControl$L-2
2080 0151 cd0000 call _ACM_GetOptimumSlip
2082 0154 b7fd ld L1501_DoMotorControl$L-3,a
2083 ; 296 NewVoltage = ACM_SlipRegulation( SlipCmd );
2085 0156 cd0000 call _ACM_SlipRegulation
2087 0159 b7fa ld L1501_DoMotorControl$L-6,a
2088 ; 298 if (( (FreqCmd+SlipCmd) > StatorFreq) && (MTC_GetSlip() < ACCEL_SLIP_LIMIT))
2090 015b b6fc ld a,L1501_DoMotorControl$L-4
2091 015d befb ld x,L1501_DoMotorControl$L-5
2092 015f bbfd add a,L1501_DoMotorControl$L-3
2093 0161 2401 jrnc L22
2094 0163 5c inc x
2095 0164 L22:
2096 0164 b700 ld c_x,a
2097 0166 b6ff ld a,L1501_DoMotorControl$L-1
2098 0168 b000 sub a,c_x
2099 016a bf00 ld c_x,x
2100 016c b6fe ld a,L1501_DoMotorControl$L-2
2101 016e b200 sbc a,c_x
2102 0170 2410 jruge L42
2104 0172 cd0000 call _MTC_GetSlip
2106 0175 a064 sub a,#100
2107 0177 9f ld a,x
2108 0178 a200 sbc a,#0
2109 017a 2406 jruge L42
2110 ; 300 StatorFreq++;
2112 017c 3cff inc L1501_DoMotorControl$L-1
2113 017e 2602 jrne L42
2114 0180 3cfe inc L1501_DoMotorControl$L-2
2115 0182 L42:
2116 ; 303 if (( (FreqCmd+SlipCmd) < StatorFreq) && (MTC_GetSlip() > DECEL_SLIP_LIMIT))
2118 0182 b6fc ld a,L1501_DoMotorControl$L-4
2119 0184 befb ld x,L1501_DoMotorControl$L-5
2120 0186 bbfd add a,L1501_DoMotorControl$L-3
2121 0188 2401 jrnc L62
2122 018a 5c inc x
2123 018b L62:
2124 018b b0ff sub a,L1501_DoMotorControl$L-1
2125 018d 9f ld a,x
2126 018e b2fe sbc a,L1501_DoMotorControl$L-2
2127 0190 2414 jruge L03
2129 0192 cd0000 call _MTC_GetSlip
2131 0195 a00b sub a,#11
2132 0197 9f ld a,x
2133 0198 a200 sbc a,#0
2134 019a 250a jrult L03
2135 ; 305 StatorFreq--;
2137 019c b6ff ld a,L1501_DoMotorControl$L-1
2138 019e a001 sub a,#1
2139 01a0 b7ff ld L1501_DoMotorControl$L-1,a
2140 01a2 2402 jrnc L03
2141 01a4 3afe dec L1501_DoMotorControl$L-2
2142 01a6 L03:
2143 ; 308 MTC_UpdateSine(NewVoltage, StatorFreq);
2145 01a6 befe ld x,L1501_DoMotorControl$L-2
2146 01a8 bf01 ld _MTC_UpdateSine$L+1,x
2147 01aa b6ff ld a,L1501_DoMotorControl$L-1
2148 01ac b702 ld _MTC_UpdateSine$L+2,a
2149 01ae b6fa ld a,L1501_DoMotorControl$L-6
2150 01b0 cd0000 call _MTC_UpdateSine
2152 01b3 L1721:
2153 ; 312 }
2156 01b3 81 ret
2250 ; 320 SystStatus_t StartMotor( void )
2250 ; 321 {
2251 switch .text
2253 xref.b L3501_StartMotor$L
2254 01b4 L3501_StartMotor:
2257 ; 324 switch ( ACM_SoftStart(MIN_START_FREQ) )
2259 01b4 5f clr x
2260 01b5 a664 ld a,#100
2261 01b7 cd0000 call _ACM_SoftStart
2264 01ba 4d tnz a
2265 01bb 2718 jreq L3031
2266 01bd 4a dec a
2267 01be 2709 jreq L1031
2268 01c0 4a dec a
2269 01c1 2703 jreq L7721
2270 ; 339 default: NextState = FAULT;
2272 01c3 a606 ld a,#6
2273 ; 340 break;
2276 01c5 81 ret
2277 01c6 L7721:
2278 ; 326 case START_FAIL:
2278 ; 327 NextState = STOP;
2280 01c6 a603 ld a,#3
2281 ; 328 break;
2284 01c8 81 ret
2285 01c9 L1031:
2286 ; 330 case START_OK:
2286 ; 331 ACM_InitSlipFreqReg( ACM_GetOptimumSlip( MTC_GetStatorFreq() ) );
2288 01c9 cd0000 call _MTC_GetStatorFreq
2290 01cc cd0000 call _ACM_GetOptimumSlip
2292 01cf cd0000 call _ACM_InitSlipFreqReg
2294 ; 332 NextState = RUN;
2296 01d2 a602 ld a,#2
2297 ; 333 break;
2300 01d4 81 ret
2301 01d5 L3031:
2302 ; 335 case START_ONGOING:
2302 ; 336 NextState = START;
2304 01d5 a601 ld a,#1
2305 ; 337 break;
2307 ; 343 return ( NextState );
2311 01d7 81 ret
2335 xdef _main
2336 switch .bss
2337 0000 L7401_State:
2338 0000 00 ds.b 1
2339 xref _ACM_GetOptimumSlip
2340 xref _ACM_SlipRegulation
2341 xref _ACM_InitSlipFreqReg
2342 xref _ACM_SoftStart
2343 xref _ACM_InitSoftStart
2344 xref _ACM_Init
2345 xref _MTC_DisableMCOutputs
2346 xref _MTC_CheckEmergencyStop
2347 xref _MTC_StopBraking
2348 xref _MTC_Brake
2349 xref _MTC_StartBraking
2350 xref _MTC_GetRotorFreq
2351 xref _MTC_GetSlip
2352 xref _MTC_GetStatorFreq
2353 xref _MTC_UpdateSine
2354 xref _ST7_IntPrioritySetUp
2355 xref _SCI_PutString
2356 xref _PrintUnsignedInt
2357 xref _ART_IsMainTimeElapsed
2358 xref _ART_SetMainTimeBase
2359 xref _ART_IsRegPeriodElapsed
2360 xref _ART_IsTimeOutElapsed
2361 xref _ART_SetTimeOutDuration
2362 xref _ART_Start
2363 xref _ART_Init
2364 xref _ADC_CheckOverVoltage
2365 xref _ADC_CheckOverTemp
2366 xref _ADC_GetRV1
2367 xref _ADC_Init
2368 xref _PORTS_KeyScan
2369 xref _PORTS_GreenLedOn
2370 xref _PORTS_RedLedToggle
2371 xref _PORTS_RedLedOn
2372 xref _PORTS_Init
2373 .const: section .text
2374 0000 L3321:
2375 0000 0a0d00 dc.b 10,13,0
2376 0003 L1321:
2377 0003 533d00 dc.b "S=",0
2378 xref.b c_x
2398 xref.b _MTC_UpdateSine$L
2399 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -