📄 main.s
字号:
cpu LMM
.module main.c
.area text(rom, con, rel)
.dbfile ./main.c
.dbfunc e main _main fV
; OSC_CR1_Bak -> X+1
; i -> X+0
_main::
.dbline -1
push X
mov X,SP
add SP,2
.dbline 8
; //----------------------------------------------------------------------------
; // C main line
; //----------------------------------------------------------------------------
;
; #include <m8c.h> // part specific constants and macros
; #include "PSoCAPI.h" // PSoC API definitions for all User Modules
; void main()
; {
.dbline 10
; unsigned char i,OSC_CR1_Bak;
; ADC10_1_Start(ADC10_1_FULLRANGE);
push X
mov A,3
xcall _ADC10_1_Start
pop X
.dbline 11
; M8C_EnableGInt;
or F, 01h
.dbline 12
; OSC_CR1_Bak=OSC_CR1;
or F,0x10 ; iopage = 1
mov A,REG[0xe1]
mov [X+1],A
and F,0xEF ; iopage = 0
xjmp L3
L2:
.dbline 14
; while(1)
; {
.dbline 15
; OSC_CR1 = OSC_CR1_Bak ;
or F,0x10 ; iopage = 1
mov A,[X+1]
mov REG[0xe1],A
and F,0xEF ; iopage = 0
.dbline 16
; OSC_CR1 = 0x1C;
or F,0x10 ; iopage = 1
mov REG[0xe1],28
and F,0xEF ; iopage = 0
L5:
.dbline 17
L6:
.dbline 17
; while(ADC10_1_fIsDataAvailable() == 0);
push X
xcall _ADC10_1_fIsDataAvailable
mov REG[0xd0],>__r0
pop X
cmp A,0
jz L5
.dbline 18
; ADC10_1_StartADC();
push X
xcall _ADC10_1_StartADC
.dbline 19
; TX8_1_Start(TX8_1_PARITY_NONE);
mov A,0
xcall _TX8_1_Start
.dbline 20
; TX8_1_PutSHexInt(ADC10_1_iGetData());
xcall _ADC10_1_iGetData
mov REG[0xd0],>__r0
mov [__r1],A
push X
mov A,[__r1]
pop X
xcall _TX8_1_PutSHexInt
.dbline 21
; ADC10_1_ClearFlag(); // Clear data ready flag
xcall _ADC10_1_ClearFlag
pop X
.dbline 22
mov [X+0],0
xjmp L11
L8:
.dbline 22
L9:
.dbline 22
inc [X+0]
L11:
.dbline 22
cmp [X+0],-1
jc L8
X1:
.dbline 23
L3:
.dbline 13
xjmp L2
X0:
.dbline -2
.dbline 24
; for(i=0;i<0xff;i++);
; }
; }
L1:
add SP,-2
pop X
.dbline 0 ; func end
jmp .
.dbsym l OSC_CR1_Bak 1 c
.dbsym l i 0 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -