📄 main.lst
字号:
262 // register. After calling of this function and write on the
263 // protected register is the security level set to low
264 // protected mode.
265 //
266 //----------------------------------------------------------------------------
267 // @Returnvalue None
268 //
269 //----------------------------------------------------------------------------
270 // @Parameters None
271 //
272 //----------------------------------------------------------------------------
273 // @Date 19.12.2003
274 //
275 //****************************************************************************
276
277 // USER CODE BEGIN (UnlockProtecReg,1)
278
279 // USER CODE END
280
281 void MAIN_vUnlockProtecReg(void)
282 {
283 1 ubyte ubPASSWORD;
284 1
285 1 if((SCUSLS & 0x1800) == 0x0800) // if low protected mode
286 1 {
287 2
288 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 288 OF MAIN.C: '=': value truncated
289 2 ubPASSWORD = ~ubPASSWORD;
290 2 SCUSLC = 0x8E00 | ubPASSWORD; // command 4
291 2
292 2 } // end if low protected mode
293 1
294 1 if((SCUSLS & 0x1800) == 0x1800) // if write protected mode
295 1 {
296 2 SCUSLC = 0xAAAA; // command 0
297 2 SCUSLC = 0x5554; // command 1
298 2
299 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 299 OF MAIN.C: '=': value truncated
300 2 ubPASSWORD = ~ubPASSWORD;
301 2
C166 COMPILER V6.04, MAIN 07/02/2007 15:03:29 PAGE 6
302 2 SCUSLC = 0x9600 | ubPASSWORD; // command 2
303 2 SCUSLC = 0x0800; // command 3; new PASSWOR is 0x00
304 2
305 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 305 OF MAIN.C: '=': value truncated
306 2 ubPASSWORD = ~ubPASSWORD;
307 2 SCUSLC = 0x8E00 | ubPASSWORD; // command 4
308 2
309 2 } // end if write protected mode
310 1
311 1 } // End of function MAIN_vUnlockProtecReg
312
313
314 //****************************************************************************
315 // @Function void main(void)
316 //
317 //----------------------------------------------------------------------------
318 // @Description This is the main function.
319 //
320 //----------------------------------------------------------------------------
321 // @Returnvalue None
322 //
323 //----------------------------------------------------------------------------
324 // @Parameters None
325 //
326 //----------------------------------------------------------------------------
327 // @Date 19.12.2003
328 //
329 //****************************************************************************
330
331
332 void ChangeDirection(void)
333 {
334 1 dir_flag = !dir_flag;
335 1 }
336
337 void SetSpeed(int new_speed)
338 {
339 1 speed = new_speed<<3; // new_speed * 8
340 1 }
341
342 void StartPwm(void)
343 {
344 1 CCU6_TCTR4 = 0x0002; //starten von T12 der CAPCOM 6
345 1 }
346
347 void StopPwm(void)
348 {
349 1 CCU6_TCTR4 = 0x0001; //stoppen von T12 der CAPCOM 6
350 1 CCU6_CMPMODIF = 0x0700; //reset output line
351 1 }
352
353 void EnableDriver(void)
354 {
355 1 if (on_flag==OFF)
356 1 {
357 2 P9=0x0010; // RESET PORT 9.4,5 OUTPUT LATCH
358 2 on_flag=ON;
359 2 }
360 1 else
361 1 {
362 2 P9=0x0020; // SET PORT 9.4,5 OUTPUT LATCH
C166 COMPILER V6.04, MAIN 07/02/2007 15:03:29 PAGE 7
363 2 on_flag=OFF;
364 2 }
365 1 }
366
367 void Comm_Asc0_Send(unsigned char buff)
368 {
369 1
370 1 ASC0_TBUF = buff;
371 1 while(!ASC0_TIC_IR){;}
372 1 ASC0_TIC_IR = 0;
373 1 }
374
375 // USER CODE BEGIN (Main,1)
376 uchar input (void)
377 {
378 1 uchar in = 0;
379 1 //do
380 1 //{
381 1 while (!ASC0_RIC_IR) _nop_();
382 1 ASC0_RIC_IR=0;
383 1 in= (char)ASC0_RBUF;
384 1 //}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'&& in != '+'&& in != '-');
385 1 return in;
386 1 // 接收测试软件(串口0)的数据
387 1 /*unsigned char i;
388 1 if(ASC0_RIC_IR)
389 1 {
390 1 ASC0_RIC_IR = 0;
391 1 comm_asc0_i = 0;
392 1 asc0_rece_buf[comm_asc0_receCount++] = (unsigned char)ASC0_RBUF;
393 1 }
394 1 if((GPT12E_T2IC_IR) && (comm_asc0_receCount>0))
395 1 {
396 1 GPT12E_T2IC_IR = 0;
397 1 comm_asc0_i++;
398 1 }
399 1 if(comm_asc0_i>1)
400 1 {
401 1 comm_asc0_i = 0;
402 1 switch(asc0_rece_buf[0])
403 1 {
404 1 case 0x0a:
405 1 {
406 1 StartPwm();
407 1 break;
408 1 }
409 1 case 0x0b:
410 1 {
411 1 StopPwm();
412 1 break;
413 1 }
414 1 case 0x0e:
415 1 {
416 1 EnableDriver(); break;
417 1 }
418 1 case 0x0d:
419 1 {
420 1 ChangeDirection(); break;
421 1 }
422 1 case 0x0f:
423 1 {
C166 COMPILER V6.04, MAIN 07/02/2007 15:03:29 PAGE 8
424 1 if(asc0_rece_buf[1]<70) SetSpeed(asc0_rece_buf[1]);
425 1 else SetSpeed(70);
426 1 break;
427 1 }
428 1 case 0x00:
429 1 {
430 1 ENC_OFFSET = (unsigned int)asc0_rece_buf[1]<<8 + asc0_rece_buf[2];
431 1 break;
432 1 }
433 1 }
434 1 Comm_Asc0_Send(asc0_rece_buf,3);
435 1 for(i=0;i<comm_asc0_receCount;i++)
436 1 {
437 1 asc0_rece_buf[i] = 0x00;
438 1 }
439 1 comm_asc0_receCount = 0;
440 1 }*/
441 1 }
442
443
444 // USER CODE END
445 extern int test_position;
446 void main(void)
447 {
448 1 // USER CODE BEGIN (Main,2)
449 1 Configure_PLL();
450 1 Configure_SYSCON3();
451 1 // USER CODE END
452 1
453 1 MAIN_vInit();
454 1
455 1 // USER CODE BEGIN (Main,4)
456 1
457 1
458 1 CCU6_TCTR4 = 0x0002; // Start Timer 12 of CAPCOM 6
459 1 InitFOC();
460 1
461 1 while (1)
462 1 {
463 2 P7_P6 = 1;
464 2 select=input();
465 2 //input();
466 2 switch (select)
467 2 {
468 3 case 0x0a: StartPwm(); break;
469 3 case 0x0b: StopPwm(); break;
470 3 case 0x0c: EnableDriver(); break;
471 3 case 0x0d: ChangeDirection(); break;
472 3 case 0x00: SetSpeed(0); break;
473 3 case 0x01: SetSpeed(10); break;
474 3 case 0x02: SetSpeed(20); break;
475 3 case 0x03: SetSpeed(30); break;
476 3 case 0x04: SetSpeed(40); break;
477 3 case 0x05: SetSpeed(50); break;
478 3 case 0x06: SetSpeed(60); break;
479 3 case 0x07: SetSpeed(70); break;
480 3 case 0x08: SetSpeed(100); break;
481 3 case 0x09: SetSpeed(150); break;
482 3 case 0x99: SetSpeed(200); break;
483 3 case 0xaa: SetSpeed(300); break;
484 3 case 0x0f: Comm_Asc0_Send((uchar)(GPT12E_T3>>8)); Comm_Asc0_Send((uchar)GPT12E_T3); Comm_Asc0_Send((uc
-har)(test_position>>8)); Comm_Asc0_Send((uchar)test_position); break;
C166 COMPILER V6.04, MAIN 07/02/2007 15:03:29 PAGE 9
485 3 default: ENC_OFFSET = (uint)(select&0xf0)<<(select&0x0f);
486 3 //case 'f': SetSpeed(set_speed); break;
487 3 //case '+': ENC_OFFSET=ENC_OFFSET+50;
488 3 //case '-': ENC_OFFSET=ENC_OFFSET-50;
489 3 }
490 2 Comm_Asc0_Send(select);
491 2 P7_P6 = 0;
492 2 }
493 1
494 1 // USER CODE END
495 1
496 1 } // End of function main
497
498
499
500 // USER CODE BEGIN (MAIN_General,10)
501
502 // USER CODE END
503
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 600 --------
NEAR-CONST SIZE = -------- --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = 114 --------
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 = 138 --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -