📄 menus.lst
字号:
C166 COMPILER V6.02, MENUS 08/28/2006 10:05:57 PAGE 1
C166 COMPILER V6.02, COMPILATION OF MODULE MENUS
OBJECT MODULE PLACED IN Menus.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE Menus.c MODV2 BROWSE MODV2 DEBUG
stmt lvl source
1 #include "Main.h"
2
3 unsigned char digits[10];
4 unsigned int digit_index = 0;
5 extern struct stCanObj
6 {
7 ubyte ubData[8]; // Message Data 0..7
8 ulong ulCANAR; // Arbitration Register
9 ulong ulCANAMR; // Acceptance Mask Register
10 uword uwMSGCTR; // Message Control Register
11 uword uwCounter; // Frame Counter
12 uword uwMSGCFG; // Message Configuration Register
13 uword uwINP; // Interrupt Node Pointer
14 uword uwCANFCR; // FIFO / Gateway Control Register
15 uword uwCANPTR; // FIFO Pointer
16 ulong ulReserved; // Reserved
17 };
18
19 void PrintMainMenu(void)
20 {
21 1 unsigned int i;
22 1
23 1 printf("\033[2J"); // Clear Screen
24 1 printf("MO: Node: DIR: ID: Data: MO: Node: DIR: ID: Data:\n");
25 1 for (i = 0; i< 31; i+=2)
26 1 {
27 2 printf("%02d",i); // MO
28 2 printf(" -"); // Node
29 2 printf(" --"); // DIR
30 2 printf(" ----"); // ID
31 2 printf(" --------"); // Data
32 2 printf(" %02d",i+1); // MO
33 2 printf(" -"); // Node
34 2 printf(" --"); // DIR
35 2 printf(" ----"); // ID
36 2 printf(" --------\n"); // Data
37 2 }
38 1 PrintPrompt(0,0);
39 1 }
40 void PrintPrompt(unsigned int p, unsigned int mo)
41 {
42 1 unsigned int i;
43 1 TCAN_SWObj SW_MO;
44 1
45 1 for(i = 18; i<25; i++)
46 1 {
47 2 MoveCursor(CursorPosY=i, CursorPosX=1);
48 2 printf("\033[2K"); // Clear Line
49 2 }
50 1 if(p==0) // Main Propmpt
51 1 {
52 2 MoveCursor(CursorPosY=22,CursorPosX=1);
53 2 printf("Enter 'E' to Edit MO, Enter 'T' to Transmit MO, Enter 'R' to Refresh:\n");
54 2 CursorPosX = 1;
55 2 CursorPosY = 23;
C166 COMPILER V6.02, MENUS 08/28/2006 10:05:57 PAGE 2
56 2 }
57 1 else if (p==1) // Transmit Prompt
58 1 {
59 2 MoveCursor(CursorPosY=22, CursorPosX=1);
60 2 printf("Enter MO# to Transmit (ESC to go back):\n");
61 2 CursorPosX = 1;
62 2 CursorPosY = 23;
63 2 }
64 1 else if (p == 2)
65 1 {
66 2 MoveCursor(CursorPosY=22, CursorPosX=1);
67 2 printf("Enter MO# to Edit (ESC to go back):\n");
68 2 CursorPosY++;
69 2 }
70 1 else if (p == 3)
71 1 {
72 2 MoveCursor(CursorPosY=19, CursorPosX=1);
73 2 printf("Current Settings for MO: %d", mo);
74 2 printf("\n"); // New line
75 2 CAN_vGetMsgObj(mo, &SW_MO);
76 2 if(SW_MO.uwMsgCfg&0x2)
77 2 printf("Node=B ");
78 2 else
79 2 printf("Node=A ");
80 2 if(SW_MO.uwMsgCfg & 0x08)
81 2 printf("DIR=TX "); // DIR
82 2 else
83 2 printf("DIR=RX "); // DIR
84 2 printf("ID=0x%03x", SW_MO.ulID); // ID
85 2 printf(" ");
86 2 printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
87 2 printf(" Data=");
88 2 for(i = 0; i < 8; i++)
89 2 {
90 3 if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
91 3 putchar('-');
92 3 else
93 3 {
94 4 if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
95 4 putchar(SW_MO.ubData[i]); // Data
96 4 else
97 4 putchar('-');
98 4 }
99 3 }
100 2 printf("\n\n"); // New lines
101 2 printf("Enter Field to Edit: N=Node, R=RX, T=TX, I=ID, M=Mask, D=Data, V=Enable\\Disable\n");
102 2 CursorPosX = 1;
103 2 CursorPosY = 23;
104 2 }
105 1 else if (p == 4)
106 1 {
107 2 MoveCursor(CursorPosY=19, CursorPosX=1);
108 2 printf("Current Settings for MO: %d", mo);
109 2 printf("\n"); // New line
110 2 CAN_vGetMsgObj(mo, &SW_MO);
111 2 if(SW_MO.uwMsgCfg&0x2)
112 2 printf("Node=B ");
113 2 else
114 2 printf("Node=A ");
115 2 if(SW_MO.uwMsgCfg & 0x08)
116 2 printf("DIR=TX "); // DIR
117 2 else
C166 COMPILER V6.02, MENUS 08/28/2006 10:05:57 PAGE 3
118 2 printf("DIR=RX "); // DIR
119 2 printf("ID=0x%03x", SW_MO.ulID); // ID
120 2 printf(" ");
121 2 printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
122 2 printf(" Data=");
123 2 for(i = 0; i < 8; i++)
124 2 {
125 3 if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
126 3 putchar('-');
127 3 else
128 3 {
129 4 if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
130 4 putchar(SW_MO.ubData[i]); // Data
131 4 else
132 4 putchar('-');
133 4 }
134 3 }
135 2 printf("\n\n"); // New lines
136 2 printf("Enter 'A' or 'B' to Assign the MO to Node A or B:\n");
137 2 CursorPosX = 1;
138 2 CursorPosY = 23;
139 2 }
140 1 else if (p == 5)
141 1 {
142 2 MoveCursor(CursorPosY=19, CursorPosX=1);
143 2 printf("Current Settings for MO: %d", mo);
144 2 printf("\n"); // New line
145 2 CAN_vGetMsgObj(mo, &SW_MO);
146 2 if(SW_MO.uwMsgCfg&0x2)
147 2 printf("Node=B ");
148 2 else
149 2 printf("Node=A ");
150 2 if(SW_MO.uwMsgCfg & 0x08)
151 2 printf("DIR=TX "); // DIR
152 2 else
153 2 printf("DIR=RX "); // DIR
154 2 printf("ID=0x%03x", SW_MO.ulID); // ID
155 2 printf(" ");
156 2 printf("Mask=0x%03x",SW_MO.ulMask & 0x7FF);
157 2 printf(" Data=");
158 2 for(i = 0; i < 8; i++)
159 2 {
160 3 if (i >= ((SW_MO.uwMsgCfg&0x00F0)>>4) )
161 3 putchar('-');
162 3 else
163 3 {
164 4 if( (SW_MO.ubData[i] > 31) && (SW_MO.ubData[i] < 127) )
165 4 putchar(SW_MO.ubData[i]); // Data
166 4 else
167 4 putchar('-');
168 4 }
169 3 }
170 2 printf("\n\n"); // New lines
171 2 printf("Enter the ID in Hex (upto 11 bits):\n");
172 2 printf("0x");
173 2 CursorPosX = 3;
174 2 CursorPosY = 23;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -