📄 example1.lst
字号:
/* C:\MCC18\example\users_guide\example1\leds.c
* Inline assembly that will jump to the ISR. C:\MCC18\example\users_guide\example1\leds.c
*/ C:\MCC18\example\users_guide\example1\leds.c
000018 ef1c GOTO 0x38 _asm GOTO timer_isr _endasm C:\MCC18\example\users_guide\example1\leds.c
00001a f000
00001c 0012 RETURN 0x0 } C:\MCC18\example\users_guide\example1\leds.c
C:\MCC18\example\users_guide\example1\leds.c
/* C:\MCC18\example\users_guide\example1\leds.c
* Returns the compiler to the default code section. C:\MCC18\example\users_guide\example1\leds.c
*/ C:\MCC18\example\users_guide\example1\leds.c
#pragma code C:\MCC18\example\users_guide\example1\leds.c
C:\MCC18\example\users_guide\example1\leds.c
/* C:\MCC18\example\users_guide\example1\leds.c
* Specifies the function timer_isr as a low-priority interrupt service C:\MCC18\example\users_guide\example1\leds.c
* routine. This is required in order for the compiler to generate a C:\MCC18\example\users_guide\example1\leds.c
* RETFIE instruction instead of a RETURN instruction for the timer_isr C:\MCC18\example\users_guide\example1\leds.c
* function. C:\MCC18\example\users_guide\example1\leds.c
*/ C:\MCC18\example\users_guide\example1\leds.c
#pragma interruptlow timer_isr C:\MCC18\example\users_guide\example1\leds.c
C:\MCC18\example\users_guide\example1\leds.c
/* C:\MCC18\example\users_guide\example1\leds.c
* Define the timer_isr function. Notice that it does not take any C:\MCC18\example\users_guide\example1\leds.c
* parameters, and does not return anything (as required by ISRs). C:\MCC18\example\users_guide\example1\leds.c
*/ C:\MCC18\example\users_guide\example1\leds.c
void C:\MCC18\example\users_guide\example1\leds.c
000038 cfd8 MOVFF 0xfd8,0xfe4 timer_isr (void) C:\MCC18\example\users_guide\example1\leds.c
00003a ffe4
00003c cfe0 MOVFF 0xfe0,0xfe4
00003e ffe4
000040 6ee4 MOVWF 0xe4,0x0
000042 cfda MOVFF 0xfda,0xfe4
000044 ffe4
000046 cfe2 MOVFF 0xfe2,0xfda
000048 ffda
00004a cfe9 MOVFF 0xfe9,0xfe4
00004c ffe4
00004e cfea MOVFF 0xfea,0xfe4
000050 ffe4
000052 cff6 MOVFF 0xff6,0xfe4
000054 ffe4
000056 cff7 MOVFF 0xff7,0xfe4
000058 ffe4
00005a cff3 MOVFF 0xff3,0xfe4
00005c ffe4
00005e cff4 MOVFF 0xff4,0xfe4
000060 ffe4
000062 cffa MOVFF 0xffa,0xfe4
000064 ffe4
000066 ee00 LFSR 0x0,0x0
000068 f000
00006a 0e10 MOVLW 0x10
00006c 04e8 DECF 0xe8,0x0,0x0
00006e e303 BNC 0x76
000070 cfee MOVFF 0xfee,0xfe4
000072 ffe4
000074 d7fb BRA 0x6c
000076 52e6 MOVF 0xe6,0x1,0x0
{ C:\MCC18\example\users_guide\example1\leds.c
static unsigned char led_display = 0; C:\MCC18\example\users_guide\example1\leds.c
C:\MCC18\example\users_guide\example1\leds.c
/* C:\MCC18\example\users_guide\example1\leds.c
* Clears the TMR0 interrupt flag to stop the program from processing the C:\MCC18\example\users_guide\example1\leds.c
* same interrupt multiple times. C:\MCC18\example\users_guide\example1\leds.c
*/ C:\MCC18\example\users_guide\example1\leds.c
000078 94f2 BCF 0xf2,0x2,0x0 INTCONbits.TMR0IF = 0; C:\MCC18\example\users_guide\example1\leds.c
C:\MCC18\example\users_guide\example1\leds.c
00007a 0e09 MOVLW 0x9 s_count = s_count % (NUMBER_OF_LEDS + 1); C:\MCC18\example\users_guide\example1\leds.c
00007c 6e10 MOVWF 0x10,0x0
00007e c010 MOVFF 0x10,0xc
000080 f00c
000082 c06a MOVFF 0x6a,0x7
000084 f007
000086 eceb CALL 0x1d6,0x0
000088 f000
00008a c003 MOVFF 0x3,0x6a
00008c f06a
C:\MCC18\example\users_guide\example1\leds.c
00008e 0100 MOVLB 0x0 led_display = (1 << s_count++) - 1; C:\MCC18\example\users_guide\example1\leds.c
000090 516a MOVF 0x6a,0x0,0x1
000092 2b6a INCF 0x6a,0x1,0x1
000094 6e10 MOVWF 0x10,0x0
000096 0e01 MOVLW 0x1
000098 5210 MOVF 0x10,0x1,0x0
00009a e004 BZ 0xa4
00009c 46e8 RLNCF 0xe8,0x1,0x0
00009e 0bfe ANDLW 0xfe
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -