📄 main.lst
字号:
C166 COMPILER V6.04, MAIN 09/02/2008 15:32:01 PAGE 1
C166 COMPILER V6.04, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE MAIN.C MODV2 BROWSE MODV2 DEFINE(TargetA) DEBUG
stmt lvl source
1 #include "MAIN.H"
2 #include <stdio.h>
3 #include <XC167.H>
4
5 #define PERIOD 15536 /* 10 msec interrupt period */
6
7 unsigned char send = 0, pattern = 0x01, obj0dat;
8
9
10 static void timer0(void) interrupt 0x20 using INTREGS
11 { /* Int Vector at 0080H, other Reg Bank */
12 1 #ifdef TargetA
13 1 obj0dat = pattern;
14 1 #else
obj0dat = ~pattern;
#endif
17 1 CAN_vLoadData(0, &obj0dat);
18 1 CAN_vTransmit (0);
19 1 if(pattern) pattern = pattern << 1;
20 1 else pattern = 0x01;
21 1 send = 1;
22 1 }
23
24 void MAIN_vInit(void)
25 {
26 1 /* setup the timer 0 interrupt */
27 1 CC1_T0REL = PERIOD; /* set reload value */
28 1 CC1_T0 = PERIOD;
29 1 CC1_T0IC = 0x44; /* set T0IE and ILVL = 1 */
30 1 CC1_T01CON = 0x44; /* start timer 0 */
31 1
32 1 CAN_vInit();
33 1
34 1 PSW_IEN = 1;
35 1
36 1 }
37
38
39 void MAIN_vUnlockProtecReg(void)
40 {
41 1 ubyte ubPASSWORD;
42 1
43 1 if((SCUSLS & 0x1800) == 0x0800) //if low protected mode
44 1 {
45 2
46 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 46 OF MAIN.C: '=': value truncated
47 2 ubPASSWORD = ~ubPASSWORD;
48 2 SCUSLC = 0x8E00 | ubPASSWORD; //command 4
49 2
50 2 } //end if low rotected mode
51 1
52 1 if((SCUSLS & 0x1800) == 0x1800) //if write protected mode
53 1 {
54 2 SCUSLC = 0xAAAA; //command0
C166 COMPILER V6.04, MAIN 09/02/2008 15:32:01 PAGE 2
55 2 SCUSLC = 0x5554; //command1
56 2
57 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 57 OF MAIN.C: '=': value truncated
58 2 ubPASSWORD = ~ubPASSWORD;
59 2
60 2 SCUSLC = 0x9600 | ubPASSWORD; //command 2
61 2 SCUSLC = 0x0800; //command 3; new PASSWOR is 0x00
62 2
63 2 ubPASSWORD = SCUSLS & 0x00FF;
*** WARNING C192 IN LINE 63 OF MAIN.C: '=': value truncated
64 2 ubPASSWORD = ~ubPASSWORD;
65 2 SCUSLC = 0x8E00 | ubPASSWORD; //command 4
66 2
67 2 }
68 1 }
69
70
71 void delay () {
72 1 unsigned int tmp;
73 1 for (tmp = 0; tmp < 60000; tmp++);
74 1 }
75
76 TCAN_SWObj obj101;
77
78 void main(void)
79 {
80 1 P3 |= 0x0400; /* SET PORT 3.10 OUTPUT LATCH (TXD) */
81 1 DP3 |= 0x0400; /* SET PORT 3.10 DIRECTION CONTROL (TXD OUTPUT) */
82 1 DP3 &= 0xF7FF; /* RESET PORT 3.11 DIRECTION CONTROL (RXD INPUT) */
83 1 ASC0_TIC = 0x80; /* SET TRANSMIT INTERRUPT FLAG */
84 1 ASC0_RIC = 0x00; /* DELETE RECEIVE INTERRUPT FLAG */
85 1 ASC0_BG = 0x80; /* SET BAUDRATE TO 9600 BAUD @ 40MHz */
86 1 ASC0_CON = 0x8011; /* SET SERIAL MODE */
87 1 ALTSEL0P3 |= 0x0C00; /* Configure port pins for serial interface 0 */
88 1
89 1 DP2 = 0xff00;
90 1
91 1
92 1 MAIN_vInit();
93 1
94 1
95 1 while (1) {
96 2
97 2 if(send) {
98 3 printf ("\nTrans Message: %02x ", obj0dat);
99 3 send = 0;
100 3 }
101 2
102 2 if (CAN_ubNewData(1)) {
103 3 CAN_vGetMsgObj (1, &obj101);
104 3 printf ("Rec Message: %02x", obj101.ubData[0]);
105 3 P2 = (obj101.ubData[0]) << 8;
106 3 CAN_vReleaseObj(1);
107 3 }
108 2 }
109 1 }
110
111
MODULE INFORMATION: INITIALIZED UNINITIALIZED
C166 COMPILER V6.04, MAIN 09/02/2008 15:32:01 PAGE 3
CODE SIZE = 350 --------
NEAR-CONST SIZE = 41 --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = 23 --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = -------- --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
BIT SIZE = -------- --------
INIT'L SIZE = 12 --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -