?? 18f_can.lst
字號:
00016e cff8 MOVFF 0xff8,0x69
000170 f069
//prom = data_ptr->from; C:\MCC18\src\traditional\startup\c018i.c
//FSR0 = data_ptr->to; C:\MCC18\src\traditional\startup\c018i.c
000172 c060 MOVFF 0x60,0xff6 //curr_byte = (unsigned short) data_ptr->size; C:\MCC18\src\traditional\startup\c018i.c
000174 fff6
000176 c061 MOVFF 0x61,0xff7
000178 fff7
00017a c062 MOVFF 0x62,0xff8
00017c fff8
/* the table pointer now points to the next entry. Save it C:\MCC18\src\traditional\startup\c018i.c
* off since we'll be using the table pointer to do the copying C:\MCC18\src\traditional\startup\c018i.c
* for the entry. C:\MCC18\src\traditional\startup\c018i.c
*/ C:\MCC18\src\traditional\startup\c018i.c
00017e 0100 MOVLB 0x0 data_ptr = TBLPTR; C:\MCC18\src\traditional\startup\c018i.c
000180 5363 MOVF 0x63,0x1,0x1 C:\MCC18\src\traditional\startup\c018i.c
/* now assign the source address to the table pointer */ C:\MCC18\src\traditional\startup\c018i.c
000182 e102 BNZ 0x188 TBLPTR = prom; C:\MCC18\src\traditional\startup\c018i.c
000184 5364 MOVF 0x64,0x1,0x1 C:\MCC18\src\traditional\startup\c018i.c
000186 e007 BZ 0x196 /* do the copy loop */ C:\MCC18\src\traditional\startup\c018i.c
_asm C:\MCC18\src\traditional\startup\c018i.c
// determine if we have any more bytes to copy C:\MCC18\src\traditional\startup\c018i.c
000188 0009 TBLRDPOSTINC movlb curr_byte C:\MCC18\src\traditional\startup\c018i.c
00018a 50f5 MOVF 0xf5,0x0,0x0 movf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00018c 6eee MOVWF 0xee,0x0 copy_loop: C:\MCC18\src\traditional\startup\c018i.c
bnz 2 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
movf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
00018e 0763 DECF 0x63,0x1,0x1 bz 7 // done_copying C:\MCC18\src\traditional\startup\c018i.c
000190 e2f8 BC 0x182 C:\MCC18\src\traditional\startup\c018i.c
000192 0764 DECF 0x64,0x1,0x1 copy_one_byte: C:\MCC18\src\traditional\startup\c018i.c
000194 d7f9 BRA 0x188 tblrdpostinc C:\MCC18\src\traditional\startup\c018i.c
movf TABLAT, 0, 0 C:\MCC18\src\traditional\startup\c018i.c
movwf POSTINC0, 0 C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
// decrement byte counter C:\MCC18\src\traditional\startup\c018i.c
decf curr_byte, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
000196 c067 MOVFF 0x67,0xff6 bc -8 // copy_loop C:\MCC18\src\traditional\startup\c018i.c
000198 fff6
00019a c068 MOVFF 0x68,0xff7
00019c fff7
00019e c069 MOVFF 0x69,0xff8
0001a0 fff8
decf curr_byte + 1, 1, 1 C:\MCC18\src\traditional\startup\c018i.c
0001a2 0100 MOVLB 0x0 bra -7 // copy_one_byte C:\MCC18\src\traditional\startup\c018i.c
0001a4 0765 DECF 0x65,0x1,0x1
0001a6 0e00 MOVLW 0x0
0001a8 5b66 SUBWFB 0x66,0x1,0x1
0001aa d7bf BRA 0x12a C:\MCC18\src\traditional\startup\c018i.c
done_copying: C:\MCC18\src\traditional\startup\c018i.c
C:\MCC18\src\traditional\startup\c018i.c
0001ac 0012 RETURN 0x0 _endasm C:\MCC18\src\traditional\startup\c018i.c
/* restore the table pointer for the next entry */ C:\MCC18\src\traditional\startup\c018i.c
TBLPTR = data_ptr; C:\MCC18\src\traditional\startup\c018i.c
/* next entry... */ C:\MCC18\src\traditional\startup\c018i.c
curr_entry--; C:\MCC18\src\traditional\startup\c018i.c
goto test; C:\MCC18\src\traditional\startup\c018i.c
done: C:\MCC18\src\traditional\startup\c018i.c
; C:\MCC18\src\traditional\startup\c018i.c
} C:\MCC18\src\traditional\startup\c018i.c
//******************************************************************* D:\work\pic\18f_can\18f_can.c
//CAN通訊子程序,2006-9-23調試 D:\work\pic\18f_can\18f_can.c
//2007-3-13改:作為接收板 D:\work\pic\18f_can\18f_can.c
//******************************************************************* D:\work\pic\18f_can\18f_can.c
#include "p18f6585.h" D:\work\pic\18f_can\18f_can.c
D:\work\pic\18f_can\18f_can.c
void can_isr(void); D:\work\pic\18f_can\18f_can.c
void initcan(void); D:\work\pic\18f_can\18f_can.c
int CAN_FLAG,cnt; D:\work\pic\18f_can\18f_can.c
D:\work\pic\18f_can\18f_can.c
void initcan(void) D:\work\pic\18f_can\18f_can.c
{ D:\work\pic\18f_can\18f_can.c
00002c 0e08 MOVLW 0x8 TRISB=(TRISB|0X08)&0XFB;//設置RB3為輸入,RB2為輸出 D:\work\pic\18f_can\18f_can.c
00002e 1093 IORWF 0x93,0x0,0x0
000030 0bfb ANDLW 0xfb
000032 6e93 MOVWF 0x93,0x0
//******************************************************************* D:\work\pic\18f_can\18f_can.c
//進入配置模式配置各寄存器 D:\work\pic\18f_can\18f_can.c
000034 6a77 CLRF 0x77,0x0 ECANCON=0; D:\work\pic\18f_can\18f_can.c
000036 0e80 MOVLW 0x80 CANCON =0x80; //請求進入CAN配置模式 D:\work\pic\18f_can\18f_can.c
000038 6e6f MOVWF 0x6f,0x0
00003a 0e00 MOVLW 0x0 while(CANSTAT&0X80==0){;}//等待進入CAN模式 D:\work\pic\18f_can\18f_can.c
00003c 146e ANDWF 0x6e,0x0,0x0
00003e e001 BZ 0x42
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -