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

📄 mytest.s

📁 Cypress公司开发的2.4G无线键盘鼠标及其Bridge源代码
💻 S
字号:
	cpu LMM
	.module mytest.c
	.area data(ram, con, rel)
_AppBuf::
	.byte 0,1
	.byte 2,3
	.byte 4,5
	.byte 6,7
	.byte 8,9
	.byte 10,11
	.byte 12,13
	.byte 14,15
	.dbfile ./mytest.c
	.dbsym e AppBuf _AppBuf A[16:16]c
	.area data(ram, con, rel)
	.dbfile ./mytest.c
	.area text(rom, con, rel)
	.dbfile ./mytest.c
	.dbfunc e radio_driver_init_test _radio_driver_init_test fV
;           temp -> X+0
_radio_driver_init_test::
	.dbline -1
	push X
	mov X,SP
	add SP,1
	.dbline 20
; #include "mytest.h"
; #include "lpradio.h"
; #include "psocgpioint.h"
; #ifdef MY_TEST
; 
; #define RED_ON nLED2_Data_ADDR &=~nLED2_MASK
; 
; #define RED_OFF nLED2_Data_ADDR |=nLED2_MASK
; 
; #define GREEN_ON nLED1_Data_ADDR &=~nLED1_MASK
; 
; #define GREEN_OFF nLED1_Data_ADDR |=nLED1_MASK
; 
; //testing radio/////////////////////////////////////
; unsigned char AppBuf[16]={
; 	0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
; };
; 
; void radio_driver_init_test(void)
; {
	.dbline 24
;   
;   // Initialization, test spi
;   unsigned char temp;
;   RED_OFF;
	or REG[ 0],-128
	.dbline 28
;   // Initialize radio for:
;   // CH=96, PN=2, ACK EN, ACK TO=8x, 125kbps, 8DR-64, SOP64, 
;   // PA=7, SOP EN, SOP64, LEN EN, SOPTH=14, TH64=14, TH32=4
;   RadioInit(0x85, 0x2F);          // TX_CFG_ADR, XACT_CFG_ADR
	push X
	mov X,47
	mov A,-123
	xcall _RadioInit
	.dbline 32
;   // Configure the Radio
; //  RadioInit(ACK_EN|END_STATE_RX|ACK_TO_8X, 6|DATCODE_LEN_32|DATMODE_8DR);
; 
;   RadioSetFrequency(3);        // Set the transmit frequency (2400MHz + CHANNEL)
	mov A,3
	xcall _RadioSetFrequency
	.dbline 34
;   
;   RadioSetThreshold32(0x05);      //
	mov A,5
	xcall _RadioSetThreshold32
	.dbline 35
;   RadioSetThreshold64(0x0e);      // 0x0E
	mov A,14
	xcall _RadioSetThreshold64
	.dbline 37
; 
;   RadioSetFrameConfig(0xee);      //0xEE
	mov A,-18
	xcall _RadioSetFrameConfig
	.dbline 38
;   temp = RadioGetFrameConfig();
	xcall _RadioGetFrameConfig
	mov REG[0xd0],>__r0
	pop X
	mov [X+0],A
	.dbline 40
;   
;   RadioSetSopPnCode(0x04);        // Change the PN Code for the Start of Packet
	push X
	mov A,4
	xcall _RadioSetSopPnCode
	.dbline 42
; 
;   RadioSetPtr(AppBuf);
	mov A,>_AppBuf
	push A
	mov A,<_AppBuf
	mov X,A
	pop A
	xcall _RadioSetPtr
	.dbline 43
;   RadioSetLength(sizeof(AppBuf));
	mov A,16
	xcall _RadioSetLength
	pop X
	xjmp L3
L2:
	.dbline 47
	.dbline 48
	push X
	mov X,16
	mov A,-6
	xcall _RadioBlockingTransmit
	mov REG[0xd0],>__r0
	pop X
	.dbline 49
L3:
	.dbline 46
	xjmp L2
X0:
	.dbline -2
	.dbline 52
; 
;   // test block transmit
;   while(1)
;   {
;   		RadioBlockingTransmit(250,16);
;   }
;   
;   
; }
L1:
	add SP,-1
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l temp 0 c
	.dbend
	.dbfunc e radio_driver_send_test _radio_driver_send_test fV
;     radiostate -> X+0
;           data -> X-4
_radio_driver_send_test::
	.dbline -1
	push X
	mov X,SP
	add SP,1
	.dbline 54
; void radio_driver_send_test(char data)
; {
	.dbline 56
; 	unsigned char radiostate;
; 	AppBuf[0]= data;
	mov A,[X-4]
	mov REG[0xd0],>_AppBuf
	mov [_AppBuf],A
	.dbline 57
; 	RadioSetPtr(AppBuf);
	push X
	mov A,>_AppBuf
	push A
	mov A,<_AppBuf
	mov X,A
	pop A
	xcall _RadioSetPtr
	.dbline 58
; 	radiostate = RadioBlockingTransmit(1,16);
	mov X,16
	mov A,1
	xcall _RadioBlockingTransmit
	mov REG[0xd0],>__r0
	pop X
	mov [X+0],A
	.dbline -2
	.dbline 60
; 	
; }
L5:
	add SP,-1
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l radiostate 0 c
	.dbsym l data -4 c
	.dbend
	.dbfunc e radio_driver_receive_poll _radio_driver_receive_poll fV
;          RxLen -> X+1
;     radiostate -> X+0
_radio_driver_receive_poll::
	.dbline -1
	push X
	mov X,SP
	add SP,2
	.dbline 62
; void radio_driver_receive_poll(void)
; {
	.dbline 65
; 	// test receive
; 	unsigned char radiostate,RxLen;
;     RadioStartReceive();
	push X
	xcall _RadioStartReceive
	pop X
	xjmp L8
L7:
	.dbline 67
; 	while(1)
; 	{
	.dbline 68
; 		radiostate = RadioGetReceiveState();
	push X
	xcall _RadioGetReceiveState
	mov REG[0xd0],>__r0
	pop X
	mov [X+0],A
	.dbline 69
; 		if((radiostate & (RADIO_ERROR | RADIO_COMPLETE))==RADIO_COMPLETE)
	mov A,[X+0]
	and A,3
	cmp A,2
	jnz L10
	.dbline 70
; 		{		
	.dbline 71
; 			RxLen = RadioEndReceive();
	push X
	xcall _RadioEndReceive
	mov REG[0xd0],>__r0
	pop X
	mov [X+1],A
	.dbline 72
; 			if(RxLen>0 && RxLen != 0xff)
	mov A,0
	cmp A,[X+1]
	jnc L12
X2:
	cmp [X+1],-1
	jz L12
	.dbline 73
; 			{  	
	.dbline 74
; 				if(AppBuf[0])
	mov REG[0xd0],>_AppBuf
	cmp [_AppBuf],0
	jz L14
	.dbline 75
; 				{
	.dbline 76
; 					RED_ON;
	and REG[ 0],127
	.dbline 77
; 				}
	xjmp L15
L14:
	.dbline 79
; 				else
; 				{
	.dbline 80
; 					RED_OFF;
	or REG[ 0],-128
	.dbline 81
; 				}		
L15:
	.dbline 82
; 			}
L12:
	.dbline 83
; 			RadioStartReceive();
	push X
	xcall _RadioStartReceive
	pop X
	.dbline 84
	xjmp L11
L10:
	.dbline 84
; 		}else if(radiostate & RADIO_ERROR)
	tst [X+0],1
	jz L16
	.dbline 85
; 		{
	.dbline 86
; 			RxLen = RadioEndReceive();
	push X
	xcall _RadioEndReceive
	mov REG[0xd0],>__r0
	pop X
	mov [X+1],A
	.dbline 87
; 			RadioStartReceive();
	push X
	xcall _RadioStartReceive
	pop X
	.dbline 88
; 		}
L16:
L11:
	.dbline 89
L8:
	.dbline 66
	xjmp L7
X1:
	.dbline -2
	.dbline 90
; 	}  
; }
L6:
	add SP,-2
	pop X
	.dbline 0 ; func end
	ret
	.dbsym l RxLen 1 c
	.dbsym l radiostate 0 c
	.dbend

⌨️ 快捷键说明

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