📄 compass.asm
字号:
;
;/******************************************************************************
;Compass calibration functions.
;******************************************************************************/
;void compass_initialization(void)
;
$compass_initialization:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?107.1:
st XH,@(-2,Y)
st X,@(-1,Y)
Lstab?9c:
;{
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?108.1:
; //compass_write(START_CAL);
; //delay_ms(1000);
; //compass_write(DONE_CAL);
;
; compass_heading_buf = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?113.1:
ld AL,#0
st AL,@$compass_heading_buf
; com_timing_count = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?114.1:
st AL,@$com_timing_count
; com_single_mea_data = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?115.1:
st AL,@$com_single_mea_data
; com_acknowledge_time = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?116.1:
st AL,@$com_acknowledge_time
; com_heading = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?117.1:
st AL,@$com_heading
; com_heading_buf = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?118.1:
ld AH,#0
st AL,@$com_heading_buf+H'1
st AH,@$com_heading_buf
; COMPASS_WROK_FLAG = COM_STOP_WROK;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?119.1:
ld AL,@$routing_flag
and AL,#-16
or AL,#3
st AL,@$routing_flag
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?120.1:
ld XH,@(-2,Y)
bra @(-1,Y)
Lstab?10c:
;
;}
;
;/******************************************************************************
;Compass calibration functions. timing
;******************************************************************************/
;void __irq_code compass_heading_read(void)
;
$compass_heading_read?:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?125.1:
st XH,@(-2,Y)
st X,@(-1,Y)
Lstab?11c:
;{
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?126.1:
;
; if(COMPASS_WROK_FLAG == COM_TRANSMIT_DATA)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?128.1:
ld AL,@$routing_flag
and AL,#15
add Y,#-4
Lstab?12a:
cmp AL,#2
bne ?L59F4
; {
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?129.1:
; if(com_timing_count == 0)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?130.1:
ld AL,@$com_timing_count
bne ?L7F4
; {
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?131.1:
; com_acknowledge_time = 0;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?132.1:
ld AL,#0
st AL,@$com_acknowledge_time
; compass_Dout_En = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?133.1:
ld AL,@$fd+H'10f
or AL,#16384
st AL,@$fd+H'10f
; compass_Dout_Set = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?134.1:
ld AL,@$fd+H'10f
or AL,#4096
st AL,@$fd+H'10f
; compass_Sclk_Clr = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?135.1:
ld AL,@$fd+H'110
or AL,#2
st AL,@$fd+H'110
; com_single_mea_data = SINGLE_MEA;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?136.1:
ld AL,#13487
st AL,@$com_single_mea_data
;
; if(com_single_mea_data & 0x01)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?138.1:
ld AL,@$com_single_mea_data
and AL,#1
beq ?L10F4
; compass_Din_Set = 1; //bit = 1
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?139.1:
ld AL,@$fd+H'110
or AL,#16
st AL,@$fd+H'110
bra ?L12F4
?L10F4:
; else
; compass_Din_Clr = 1; //bit = 0
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?141.1:
ld AL,@$fd+H'110
or AL,#32
st AL,@$fd+H'110
?L12F4:
; com_single_mea_data = com_single_mea_data >> 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?142.1:
ld AL,@$com_single_mea_data
ld AH,#0
lsr #1
st AL,@$com_single_mea_data
; com_timing_count ++;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?143.1:
ld AL,@$com_timing_count
add AL,#1
st AL,@$com_timing_count
bra ?L59F4
?L7F4:
; }
;
; else if(com_timing_count < 33)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?146.1:
ld AL,@$com_timing_count
cmp AL,#33
bcc ?L15F4
; {
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?147.1:
;
; rg.io.gp12_15_out = IO_GP12_15_OUT_CLR12_MASK | IO_GP12_15_OUT_SET12_MASK;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?149.1:
ld AL,#3
st AL,@$rg+H'110
; if(com_timing_count % 2 == 0)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?150.1:
ld AL,@$com_timing_count
and AL,#1
bne ?L18F4
; {
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?151.1:
; if(com_single_mea_data & 0x01)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?152.1:
ld AL,@$com_single_mea_data
and AL,#1
beq ?L21F4
; compass_Din_Set = 1; //bit = 1
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?153.1:
ld AL,@$fd+H'110
or AL,#16
st AL,@$fd+H'110
bra ?L23F4
?L21F4:
; else
; compass_Din_Clr = 1; //bit = 0
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?155.1:
ld AL,@$fd+H'110
or AL,#32
st AL,@$fd+H'110
?L23F4:
; com_single_mea_data = com_single_mea_data >> 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?156.1:
ld AL,@$com_single_mea_data
ld AH,#0
lsr #1
st AL,@$com_single_mea_data
?L18F4:
; }
; if(com_timing_count == 8)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?158.1:
ld AL,@$com_timing_count
cmp AL,#8
bne ?L25F4
; {
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?159.1:
; compass_Dout_Clr = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?160.1:
ld AL,@$fd+H'10f
or AL,#8192
st AL,@$fd+H'10f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -