?? can_c.lst
字號(hào):
C51 COMPILER V8.05a CAN_C 06/20/2008 07:43:20 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE CAN_C
OBJECT MODULE PLACED IN CAN_C.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAN_C.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #pragma large
2 #include <reg52.h>
3 #include <SJA_BCANCONF.H>
*** WARNING C318 IN LINE 3 OF CAN_C.C: can't open file 'SJA_BCANCONF.H'
4 #include <absacc.h>
5 #include <string.h>
6 #include <intrins.h>
7 #define uchar unsigned char
8 #define uint unsigned int
9 /*----------------------------lcd---------------------------------*/
10 #define clear 0x01 //清屏幕,約1.6ms
11 #define home 0x02 //光標(biāo)回零(左上角)
12 #define f_set 0x30 //并行、基本指令
13 #define dis_on 0x0f //打開(kāi)顯示,光標(biāo),閃爍功能
14 #define in_mode 0x06 //輸入方式,地址增1,光標(biāo)右移
15 #define panel_num 10
16
17 sbit P_RS=P1^3; //P0^1; P1.5 片選CS高電平選中即有效
18 sbit P_RW=P1^4; //P0^2; SID
19 sbit P_E=P1^5; // P0^3; CLK
20 bdata uchar ab,d;
21 sbit abit0=ab^0;sbit abit1=ab^1;sbit abit2=ab^2;sbit abit3=ab^3;
22 sbit abit4=ab^4;sbit abit5=ab^5;sbit abit6=ab^6;sbit abit7=ab^7;
23 //idata uchar teleph0[17]={0x08,0xfd,0x04,0x0d,0,0,0,0,0,0,0,0,0,0,0,0,0};//0x38,0x36,0x31,0x33,0x38,0x34,
-0x35,0x31,0x32,
24 //0x34,0x36,0x34,0x32};
25 idata uchar str[10];
26 data uchar start;
27 //data uchar plat_data;
28 //uchar i;
29 /******************/
30 /*---------------------------------------------------------*/
31 /****************************************************************
32 CAN總線數(shù)據(jù)協(xié)議:
33
34 0 "1" to "20" 目標(biāo)ID
35 1 "0x08" 特定
36 2 "m" or "p" or "d" 關(guān)節(jié)的選擇
37 3 "1" to "3" 自身ID
38 4 "C" or "D" 命令口or數(shù)據(jù)口的選擇
39 5 "R" or "A" 命令字
40 6-9 ...... 數(shù)據(jù)
41
42 ******************************************************************/
43
44 sbit SJA_reset=P2^1;
45 sbit green=P1^1;
46 sbit red=P1^2;
47 long real_position_m,real_position_p,real_position_d;
48 unsigned char request_flag,interrupt_flag; //是否為查詢
49
50 unsigned char data SystemBuf[10]; //系統(tǒng)設(shè)置的接收數(shù)據(jù)緩沖區(qū)
51 unsigned char data SendBuf[10]; //系統(tǒng)設(shè)置的發(fā)送數(shù)據(jù)緩沖區(qū)
52 /*---------------------------------------------------------*/
53 void delay(uint j) // time=j*10+7 (us)延時(shí)函數(shù)/
C51 COMPILER V8.05a CAN_C 06/20/2008 07:43:20 PAGE 2
54 {
55 1 data uchar ch;
56 1 while(j--)
57 1 {
58 2 ch++; ch--;
59 2 }
60 1 }
61 /*---------------------------------------------------------*/
62
63
64
65 /************************************************************************
66 *以下為基本的函數(shù)說(shuō)明(BasicCAN) *
67 ************************************************************************/
68
69 /************************************************************************
70 *函數(shù)原型: bit BCAN_CREATE_COMMUNATION(void) *
71 *參數(shù)說(shuō)明: 無(wú) *
72 *返回值: *
73 * 0 ; 表示SJA1000接口正常 *
74 * 1 ; 表示SJA1000與處理器接口不正常 *
75 * *
76 *說(shuō)明:該函數(shù)用于檢測(cè)CAN控制器的接口是否正常 *
77 ************************************************************************/
78 bit BCAN_CREATE_COMMUNATION(void)
79 {
80 1 SJA_BCANAdr=REG_TEST; //訪問(wèn)測(cè)試寄存器
*** ERROR C202 IN LINE 80 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
81 1
82 1 *SJA_BCANAdr =0xaa; //寫(xiě)入測(cè)試值
*** ERROR C202 IN LINE 82 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
83 1 if(*SJA_BCANAdr == 0xaa)
*** ERROR C202 IN LINE 83 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
84 1 {
85 2 return 0; //讀測(cè)試正確
86 2 }
87 1 else
88 1 {
89 2 return 1;
90 2 }
91 1 }
92
93 /************************************************************************
94 *函數(shù)原型: bit BCAN_ENTER_RETMODEL(void) *
95 *參數(shù)說(shuō)明: 無(wú) *
96 *返回值: *
97 * 0 ; 表示成功進(jìn)入復(fù)位工作模式 *
98 * 1 ; 表示不能進(jìn)入復(fù)位工作模式 *
99 * *
100 *說(shuō)明: CAN控制器進(jìn)入復(fù)位工作模式 *
101 ************************************************************************/
102 bit BCAN_ENTER_RETMODEL(void)
103 {
104 1 unsigned char TempData;
105 1 SJA_BCANAdr = REG_CONTROL; //訪問(wèn)地址指向控制寄存器
*** ERROR C202 IN LINE 105 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
106 1 TempData= *SJA_BCANAdr; //保存原始值
*** ERROR C202 IN LINE 106 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
107 1 *SJA_BCANAdr=(TempData|0x01); //置位復(fù)位請(qǐng)求
*** ERROR C202 IN LINE 107 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
108 1 if((*SJA_BCANAdr&0x01) == 1)
*** ERROR C202 IN LINE 108 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
C51 COMPILER V8.05a CAN_C 06/20/2008 07:43:20 PAGE 3
109 1 {
110 2 return 0;
111 2 }
112 1 else
113 1 {
114 2 return 1;
115 2 }
116 1
117 1 }
118
119 /************************************************************************
120 *函數(shù)原型: bit BCAN_QUIT_RETMODEL(void) *
121 *參數(shù)說(shuō)明: 無(wú) *
122 *返回值: *
123 * 0 ; 表示成功退出復(fù)位工作模式 *
124 * 1 ; 表示不能退出復(fù)位工作模式 *
125 * *
126 *說(shuō)明: CAN控制器退出復(fù)位工作模式 *
127 ************************************************************************/
128 bit BCAN_QUIT_RETMODEL(void)
129 {
130 1 unsigned char TempData;
131 1 SJA_BCANAdr = REG_CONTROL; //訪問(wèn)地址指向控制寄存器
*** ERROR C202 IN LINE 131 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
132 1 TempData = *SJA_BCANAdr; //保存原始值
*** ERROR C202 IN LINE 132 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
133 1 *SJA_BCANAdr=(TempData&0xfe); //清除復(fù)位請(qǐng)求
*** ERROR C202 IN LINE 133 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
134 1 if((*SJA_BCANAdr&0x01) == 0)
*** ERROR C202 IN LINE 134 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
135 1 {
136 2 return 0; //
137 2 }
138 1 else
139 1 {
140 2 return 1; //退出成功
141 2 }
142 1
143 1 }
144
145 /************************************************************************
146 ;*函數(shù)原型: bit BCAN_SET_BANDRATE(unsigned char CAN_ByteRate) *
147 ;*參數(shù)說(shuō)明: R7 波特率(Kbit/s) BTR0 BTR1 *
148 500K
149 ;*返回值: *
150 ;* 0 ;波特率設(shè)置成功 *
151 ;* 1 ;波特率設(shè)置失敗 *
152 ;* *
- *
153 ;************************************************************************/
154 bit BCAN_SET_BANDRATE()
155 {
156 1 unsigned char BTR0_num=0x00; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
157 1 unsigned char BTR1_num=0x1c; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
158 1 //將波特率的的預(yù)設(shè)值裝入sja1000的總線定時(shí)器
159 1 SJA_BCANAdr=REG_BTR0; //訪問(wèn)地址指向總線定時(shí)寄存器0
*** ERROR C202 IN LINE 159 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
160 1 *SJA_BCANAdr=BTR0_num; //寫(xiě)入?yún)?shù)
*** ERROR C202 IN LINE 160 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
161 1 if(*SJA_BCANAdr != BTR0_num) //校驗(yàn)寫(xiě)入值
*** ERROR C202 IN LINE 161 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
162 1 {
C51 COMPILER V8.05a CAN_C 06/20/2008 07:43:20 PAGE 4
163 2 return 1;
164 2 }
165 1 SJA_BCANAdr=REG_BTR1; //訪問(wèn)地址指向總線定時(shí)寄存器
*** ERROR C202 IN LINE 165 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
166 1 *SJA_BCANAdr=BTR1_num; //寫(xiě)入?yún)?shù)
*** ERROR C202 IN LINE 166 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
167 1 if(*SJA_BCANAdr != BTR1_num) //校驗(yàn)寫(xiě)入值
*** ERROR C202 IN LINE 167 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
168 1 {
169 2 return 1;
170 2 }
171 1
172 1 return 0;
173 1 }
174
175
176 /************************************************************************
177 ;*函數(shù)原型: BCAN_SET_OBJECT *
178 *參數(shù)說(shuō)明: *
179 * BCAN_ACR:存放驗(yàn)收代碼寄存器(ACR)的參數(shù)設(shè)置 *
180 * BCAN_AMR:存放接收屏蔽寄存器(AMR)的參數(shù)設(shè)置 *
181 ;*返回值: *
182 ;* 0 ;通信對(duì)象設(shè)置成功 *
183 ;* 1 ;通信對(duì)象設(shè)置失敗 *
184 ;* *
185 ;*說(shuō)明:設(shè)置CAN節(jié)點(diǎn)的通訊對(duì)象,允許接收的報(bào)文ID號(hào)的高8位(D10--D3) 。 *
186 ;* 允許接收的報(bào)文,是由AMR和ACR共同決定的. *
187 ;* 滿足以下條件的ID號(hào)的報(bào)文才可以被接收 *
188 ;*[(ID.10-ID.3)≡(AC.7-AC.0)]||(AM.7-AM.0)≡11111111 *
189 ;* 該子程序只能用于復(fù)位模式 *
- *
190 ;************************************************************************/
191 bit BCAN_SET_OBJECT(unsigned char BCAN_ACR,unsigned char BCAN_AMR)
192 {
193 1 SJA_BCANAdr=REG_ACR; //訪問(wèn)地址指向驗(yàn)收代碼寄存器(ACR)
*** ERROR C202 IN LINE 193 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
194 1 *SJA_BCANAdr=BCAN_ACR; //寫(xiě)入?yún)?shù)
*** ERROR C202 IN LINE 194 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
195 1 if(*SJA_BCANAdr != BCAN_ACR) //校驗(yàn)寫(xiě)入值
*** ERROR C202 IN LINE 195 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
196 1 {
197 2 return 1;
198 2 }
199 1 SJA_BCANAdr=REG_AMR; //訪問(wèn)地址指向驗(yàn)收屏蔽寄存器(AMR)
*** ERROR C202 IN LINE 199 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
200 1 *SJA_BCANAdr=BCAN_AMR; //寫(xiě)入?yún)?shù)
*** ERROR C202 IN LINE 200 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
201 1 if(*SJA_BCANAdr != BCAN_AMR) //校驗(yàn)寫(xiě)入值
*** ERROR C202 IN LINE 201 OF CAN_C.C: 'SJA_BCANAdr': undefined identifier
202 1 {
203 2 return 1;
204 2 }
205 1
206 1 return 0;
207 1 }
208
209 /************************************************************************
210 ;*函數(shù)原型: bit BCAN_SET_OUTCLK (unsigned char Out_Control, *
211 unsigned char Clock_Out); *
212 ;*參數(shù)說(shuō)明: *
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -