📄 main.lst
字号:
223 1 // initializes the Parallel Ports
224 1 IO_vInit();
225 1
226 1 // initializes the Asynchronous/Synchronous Serial Interface (ASC0)
227 1 ASC0_vInit();
228 1
229 1 // initializes the General Purpose Timer Unit (GPT1)
230 1 GPT1_vInit();
231 1
232 1 // initializes the Capture / Compare Unit 1 (CAPCOM1)
233 1 CC1_vInit();
234 1
235 1 // initializes the Analog / Digital Converter (ADC)
236 1 ADC_vInit();
237 1
238 1 // initializes the Capture / Compare Unit 6 (CCU6)
239 1 CCU6_vInit();
240 1
241 1 // initializes the Interrupt Controller (INT)
C166 COMPILER V4.27, MAIN 12/19/2003 11:51:09 PAGE 5
242 1 INT_vInit();
243 1
244 1 // USER CODE BEGIN (Init,3)
245 1
246 1 // USER CODE END
247 1
248 1 // globally enable interrupts
249 1 PSW_IEN = 1;
250 1
251 1 } // End of function MAIN_vInit
252
253
254 //****************************************************************************
255 // @Function void MAIN_vUnlockProtecReg(void)
256 //
257 //----------------------------------------------------------------------------
258 // @Description This function makes it possible to write one protected
259 // register. After calling of this function and write on the
260 // protected register is the security level set to low
261 // protected mode.
262 //
263 //----------------------------------------------------------------------------
264 // @Returnvalue None
265 //
266 //----------------------------------------------------------------------------
267 // @Parameters None
268 //
269 //----------------------------------------------------------------------------
270 // @Date 19.12.2003
271 //
272 //****************************************************************************
273
274 // USER CODE BEGIN (UnlockProtecReg,1)
275
276 // USER CODE END
277
278 void MAIN_vUnlockProtecReg(void)
279 {
280 1 ubyte ubPASSWORD;
281 1
282 1 if((SCUSLS & 0x1800) == 0x0800) // if low protected mode
283 1 {
284 2
285 2 ubPASSWORD = SCUSLS & 0x00FF;
286 2 ubPASSWORD = ~ubPASSWORD;
287 2 SCUSLC = 0x8E00 | ubPASSWORD; // command 4
288 2
289 2 } // end if low protected mode
290 1
291 1 if((SCUSLS & 0x1800) == 0x1800) // if write protected mode
292 1 {
293 2 SCUSLC = 0xAAAA; // command 0
294 2 SCUSLC = 0x5554; // command 1
295 2
296 2 ubPASSWORD = SCUSLS & 0x00FF;
297 2 ubPASSWORD = ~ubPASSWORD;
298 2
299 2 SCUSLC = 0x9600 | ubPASSWORD; // command 2
300 2 SCUSLC = 0x0800; // command 3; new PASSWOR is 0x00
301 2
302 2 ubPASSWORD = SCUSLS & 0x00FF;
303 2 ubPASSWORD = ~ubPASSWORD;
C166 COMPILER V4.27, MAIN 12/19/2003 11:51:09 PAGE 6
304 2 SCUSLC = 0x8E00 | ubPASSWORD; // command 4
305 2
306 2 } // end if write protected mode
307 1
308 1 } // End of function MAIN_vUnlockProtecReg
309
310
311 //****************************************************************************
312 // @Function void main(void)
313 //
314 //----------------------------------------------------------------------------
315 // @Description This is the main function.
316 //
317 //----------------------------------------------------------------------------
318 // @Returnvalue None
319 //
320 //----------------------------------------------------------------------------
321 // @Parameters None
322 //
323 //----------------------------------------------------------------------------
324 // @Date 19.12.2003
325 //
326 //****************************************************************************
327
328 // USER CODE BEGIN (Main,1)
329 char input (void)
330 {
331 1 char in = ' ';
332 1 do
333 1 {
334 2 while (!ASC0_RIC_IR) _nop_();
335 2 ASC0_RIC_IR=0;
336 2 in= (char)ASC0_RBUF;
337 2 }while (in != 'a' && in != 'b' && in != 'd' && in != 'e' && in != '0' && in != '1' && in != '2' && in !
-= '3'&& in != '4' && in != '5' && in != '6'&& in != '7' && in != '8' && in != '9');
338 1 return in;
339 1
340 1 }
341
342 void ChangeDirection(void)
343 {
344 1 dir_flag = !dir_flag;
345 1 }
346
347 void SetSpeed(int new_speed)
348 {
349 1 speed = new_speed<<3; // new_speed * 8
350 1 }
351
352 void StartPwm(void)
353 {
354 1 CCU6_TCTR4 = 0x0002; //starten von T12 der CAPCOM 6
355 1 }
356
357 void StopPwm(void)
358 {
359 1 CCU6_TCTR4 = 0x0001; //stoppen von T12 der CAPCOM 6
360 1 CCU6_CMPMODIF = 0x0700; //reset output line
361 1 }
362
363 void EnableDriver(void)
364 {
C166 COMPILER V4.27, MAIN 12/19/2003 11:51:09 PAGE 7
365 1 if (on_flag==OFF)
366 1 {
367 2 P9=0x0010; // RESET PORT 9.4,5 OUTPUT LATCH
368 2 on_flag=ON;
369 2 }
370 1 else
371 1 {
372 2 P9=0x0020; // SET PORT 9.4,5 OUTPUT LATCH
373 2 on_flag=OFF;
374 2 }
375 1 }
376
377 // USER CODE END
378
379 void main(void)
380 {
381 1 // USER CODE BEGIN (Main,2)
382 1 Configure_PLL();
383 1 Configure_SYSCON3();
384 1 // USER CODE END
385 1
386 1 MAIN_vInit();
387 1
388 1 // USER CODE BEGIN (Main,4)
389 1
390 1
391 1 CCU6_TCTR4 = 0x0002; // Start Timer 12 of CAPCOM 6
392 1 InitFOC();
393 1
394 1 while (1)
395 1 {
396 2 P7_P6 = 1;
397 2 select=input();
398 2
399 2 switch (select)
400 2 {
401 3 case 'a': StartPwm(); break;
402 3 case 'b': StopPwm(); break;
403 3 case 'e': EnableDriver(); break;
404 3 case 'd': ChangeDirection(); break;
405 3 case '0': SetSpeed(0); break;
406 3 case '1': SetSpeed(10); break;
407 3 case '2': SetSpeed(20); break;
408 3 case '3': SetSpeed(30); break;
409 3 case '4': SetSpeed(40); break;
410 3 case '5': SetSpeed(50); break;
411 3 case '6': SetSpeed(60); break;
412 3 case '7': SetSpeed(70); break;
413 3 case '8': SetSpeed(1); break;
414 3 case '9': SetSpeed(5); break;
415 3 }
416 2 P7_P6 = 0;
417 2 }
418 1
419 1 // USER CODE END
420 1
421 1 } // End of function main
422
423
424
425 // USER CODE BEGIN (MAIN_General,10)
426
C166 COMPILER V4.27, MAIN 12/19/2003 11:51:09 PAGE 8
427 // USER CODE END
428
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 552 --------
NEAR-CONST SIZE = -------- --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = 107 --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = 10 --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
BIT SIZE = 3 --------
INIT'L SIZE = 126 --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -