⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compass.asm

📁 使用CYAN单片机的ECOG1开发板连接SIM300C的GSM模块开发的短信收发程序.供UART和AT指令编程者参考
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; generated by Norcroft eCOG C Compiler V1.10 $BuildRevision$
; special options:  -g
;
	MODULE compass___compass
	.CODE
	.LARGE
	; TARGET_MAX_STACK_OVERRUN = 8
;/******************************************************************************
;MODE:		AML--#GPS+accelerator+compass
;MCU:		Cyan eCOG1k
;COMPILER:	CyanIDE v1.41
;FILE NAME:	compass C source code files
;******************************************************************************/
;#define compass_code
;/******************************************************************************
;Project level include files.
;******************************************************************************/
;#include "compass.h"
;
;/******************************************************************************
;Declaration of static functions.
;******************************************************************************/
;void compass_write(unsigned int compass_command);
;unsigned int compass_read(void);
;void compass_initialization(void);
;/*********************************************************************
;** compass write command.
;*********************************************************************/
;void compass_write(unsigned int compass_command)
;
$compass_write:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?22.1:
	st	AL,@(-1,Y)
	st	XH,@(-3,Y)
	st	X,@(-2,Y)
	st	AL,@(-6,Y)	; %r16 (compass_command)
Lstab?0c:
;{
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?23.1:
Lstab?1c:
;	unsigned char i;
;	
;	compass_Dout_En = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?26.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'.?27.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'.?28.1:
	ld	AL,@$fd+H'110
	or	AL,#2
	st	AL,@$fd+H'110
;	delay_ms(10);
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?29.1:
	ld	AL,#10
	add	Y,#-7
Lstab?2a:
	bsr	$delay_ms
;	
;	for(i = 0; i < 16; i++)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?31.1:
	ld	AL,#0
	st	AL,@(3,Y)	; %r17 (i)
?L5F1:
; ^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?31.1:
	ld	AH,@(3,Y)	; %r17 (i)
	cmp	AH,#16
	blt	?L4F1
	bra	?L7F1
?L6F1:
; ^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?31.1:
; ^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?31.1:
	ld	AL,@(3,Y)	; %r17 (i)
	add	AL,#1
	and	AL,#255
	st	AL,@(3,Y)	; %r17 (i)
	bra	?L5F1
?L4F1:
;	{
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?32.1:
;		if(compass_command & 0x01)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?33.1:
	ld	AL,@(1,Y)	; %r16 (compass_command)
	and	AL,#1
	beq	?L10F1
;			compass_Din_Set = 1;		//bit = 1
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?34.1:
	ld	AL,@$fd+H'110
	or	AL,#16
	st	AL,@$fd+H'110
	bra	?L12F1
?L10F1:
;		else
;			compass_Din_Clr = 1;		//bit = 0
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?36.1:
	ld	AL,@$fd+H'110
	or	AL,#32
	st	AL,@$fd+H'110
?L12F1:
;		
;		delay_ms(10);
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?38.1:
	ld	AL,#10
	bsr	$delay_ms
;		compass_Sclk_Set = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?39.1:
	ld	AL,@$fd+H'110
	or	AL,#1
	st	AL,@$fd+H'110
;		delay_ms(10);
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?40.1:
	ld	AL,#10
	bsr	$delay_ms
;		//nop();
;		compass_command = compass_command >> 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?42.1:
	ld	AL,@(1,Y)	; %r16 (compass_command)
	ld	AH,#0
	lsr	#1
;		
;		if(i == 4)
	st	AL,@(1,Y)	; %r16 (compass_command)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?44.1:
	ld	AH,@(3,Y)	; %r17 (i)
	cmp	AH,#4
	bne	?L13F1
;			compass_Dout_Clr = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?45.1:
	ld	AL,@$fd+H'10f
	or	AL,#8192
	st	AL,@$fd+H'10f
?L13F1:
;		
;		compass_Sclk_Clr = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?47.1:
	ld	AL,@$fd+H'110
	or	AL,#2
	st	AL,@$fd+H'110
	bra	?L6F1
?L7F1:
;	}
;	
;	compass_Dout_Set = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?50.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'.?51.1:
	ld	AL,@$fd+H'110
	or	AL,#2
	st	AL,@$fd+H'110
;	compass_Din_Clr = 1;
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?52.1:
	ld	AL,@$fd+H'110
	or	AL,#32
	st	AL,@$fd+H'110
;	nop();
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?53.1:
	nop
Lstab?3c:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?54.1:
?L18F1:
	add	Y,#7
	ld	XH,@(-3,Y)
	bra	@(-2,Y)
Lstab?4c:
;
;}
;
;/*********************************************************************
;** compass read heading.
;*********************************************************************/
;unsigned int compass_read(void)
;
$compass_read:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?59.1:
	add	Y,#-12
Lstab?5a:
	st	XH,@(10,Y)
	st	X,@(11,Y)
Lstab?6c:
;{
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?60.1:
Lstab?7c:
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?63.1:
	ld	AL,#0
	st	AL,@(5,Y)	; %r18 (com_checksum)
^compass___compass.'D:\GPS\software\GPS_A_C\compass.c'.?64.1:
	ld	AH,#0
;	//struct compass_receiv *de = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -