📄 mytest.lis
字号:
0000 cpu LMM
.module mytest.c
.area data(ram, con, rel)
0000 _AppBuf::
0000 0001 .byte 0,1
0002 0203 .byte 2,3
0004 0405 .byte 4,5
0006 0607 .byte 6,7
0008 0809 .byte 8,9
000A 0A0B .byte 10,11
000C 0C0D .byte 12,13
000E 0E0F .byte 14,15
0010 .dbfile ./mytest.c
0010 .dbsym e AppBuf _AppBuf A[16:16]c
.area data(ram, con, rel)
0000 .dbfile ./mytest.c
.area text(rom, con, rel)
0000 .dbfile ./mytest.c
0000 .dbfunc e radio_driver_init_test _radio_driver_init_test fV
0000 ; temp -> X+0
0000 _radio_driver_init_test::
0000 .dbline -1
0000 10 push X
0001 4F mov X,SP
0002 3801 add SP,1
0004 .dbline 20
0004 ; #include "mytest.h"
0004 ; #include "lpradio.h"
0004 ; #include "psocgpioint.h"
0004 ; #ifdef MY_TEST
0004 ;
0004 ; #define RED_ON nLED2_Data_ADDR &=~nLED2_MASK
0004 ;
0004 ; #define RED_OFF nLED2_Data_ADDR |=nLED2_MASK
0004 ;
0004 ; #define GREEN_ON nLED1_Data_ADDR &=~nLED1_MASK
0004 ;
0004 ; #define GREEN_OFF nLED1_Data_ADDR |=nLED1_MASK
0004 ;
0004 ; //testing radio/////////////////////////////////////
0004 ; unsigned char AppBuf[16]={
0004 ; 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
0004 ; };
0004 ;
0004 ; void radio_driver_init_test(void)
0004 ; {
0004 .dbline 24
0004 ;
0004 ; // Initialization, test spi
0004 ; unsigned char temp;
0004 ; RED_OFF;
0004 430080 or REG[ 0],-128
0007 .dbline 28
0007 ; // Initialize radio for:
0007 ; // CH=96, PN=2, ACK EN, ACK TO=8x, 125kbps, 8DR-64, SOP64,
0007 ; // PA=7, SOP EN, SOP64, LEN EN, SOPTH=14, TH64=14, TH32=4
0007 ; RadioInit(0x85, 0x2F); // TX_CFG_ADR, XACT_CFG_ADR
0007 10 push X
0008 572F mov X,47
000A 5085 mov A,-123
000C 7C0000 xcall _RadioInit
000F .dbline 32
000F ; // Configure the Radio
000F ; // RadioInit(ACK_EN|END_STATE_RX|ACK_TO_8X, 6|DATCODE_LEN_32|DATMODE_8DR);
000F ;
000F ; RadioSetFrequency(3); // Set the transmit frequency (2400MHz + CHANNEL)
000F 5003 mov A,3
0011 7C0000 xcall _RadioSetFrequency
0014 .dbline 34
0014 ;
0014 ; RadioSetThreshold32(0x05); //
0014 5005 mov A,5
0016 7C0000 xcall _RadioSetThreshold32
0019 .dbline 35
0019 ; RadioSetThreshold64(0x0e); // 0x0E
0019 500E mov A,14
001B 7C0000 xcall _RadioSetThreshold64
001E .dbline 37
001E ;
001E ; RadioSetFrameConfig(0xee); //0xEE
001E 50EE mov A,-18
0020 7C0000 xcall _RadioSetFrameConfig
0023 .dbline 38
0023 ; temp = RadioGetFrameConfig();
0023 7C0000 xcall _RadioGetFrameConfig
0026 62D000 mov REG[0xd0],>__r0
0029 20 pop X
002A 5400 mov [X+0],A
002C .dbline 40
002C ;
002C ; RadioSetSopPnCode(0x04); // Change the PN Code for the Start of Packet
002C 10 push X
002D 5004 mov A,4
002F 7C0000 xcall _RadioSetSopPnCode
0032 .dbline 42
0032 ;
0032 ; RadioSetPtr(AppBuf);
0032 5000 mov A,>_AppBuf
0034 08 push A
0035 5000 mov A,<_AppBuf
0037 5C mov X,A
0038 18 pop A
0039 7C0000 xcall _RadioSetPtr
003C .dbline 43
003C ; RadioSetLength(sizeof(AppBuf));
003C 5010 mov A,16
003E 7C0000 xcall _RadioSetLength
0041 20 pop X
0042 800D xjmp L3
0044 L2:
0044 .dbline 47
0044 .dbline 48
0044 10 push X
0045 5710 mov X,16
0047 50FA mov A,-6
0049 7C0000 xcall _RadioBlockingTransmit
004C 62D000 mov REG[0xd0],>__r0
004F 20 pop X
0050 .dbline 49
0050 L3:
0050 .dbline 46
0050 8FF3 xjmp L2
0052 X0:
0052 .dbline -2
0052 .dbline 52
0052 ;
0052 ; // test block transmit
0052 ; while(1)
0052 ; {
0052 ; RadioBlockingTransmit(250,16);
0052 ; }
0052 ;
0052 ;
0052 ; }
0052 L1:
0052 38FF add SP,-1
0054 20 pop X
0055 .dbline 0 ; func end
0055 7F ret
0056 .dbsym l temp 0 c
0056 .dbend
0056 .dbfunc e radio_driver_send_test _radio_driver_send_test fV
0056 ; radiostate -> X+0
0056 ; data -> X-4
0056 _radio_driver_send_test::
0056 .dbline -1
0056 10 push X
0057 4F mov X,SP
0058 3801 add SP,1
005A .dbline 54
005A ; void radio_driver_send_test(char data)
005A ; {
005A .dbline 56
005A ; unsigned char radiostate;
005A ; AppBuf[0]= data;
005A 52FC mov A,[X-4]
005C 62D000 mov REG[0xd0],>_AppBuf
005F 5300 mov [_AppBuf],A
0061 .dbline 57
0061 ; RadioSetPtr(AppBuf);
0061 10 push X
0062 5000 mov A,>_AppBuf
0064 08 push A
0065 5000 mov A,<_AppBuf
0067 5C mov X,A
0068 18 pop A
0069 7C0000 xcall _RadioSetPtr
006C .dbline 58
006C ; radiostate = RadioBlockingTransmit(1,16);
006C 5710 mov X,16
006E 5001 mov A,1
0070 7C0000 xcall _RadioBlockingTransmit
0073 62D000 mov REG[0xd0],>__r0
0076 20 pop X
0077 5400 mov [X+0],A
0079 .dbline -2
0079 .dbline 60
0079 ;
0079 ; }
0079 L5:
0079 38FF add SP,-1
007B 20 pop X
007C .dbline 0 ; func end
007C 7F ret
007D .dbsym l radiostate 0 c
007D .dbsym l data -4 c
007D .dbend
007D .dbfunc e radio_driver_receive_poll _radio_driver_receive_poll fV
007D ; RxLen -> X+1
007D ; radiostate -> X+0
007D _radio_driver_receive_poll::
007D .dbline -1
007D 10 push X
007E 4F mov X,SP
007F 3802 add SP,2
0081 .dbline 62
0081 ; void radio_driver_receive_poll(void)
0081 ; {
0081 .dbline 65
0081 ; // test receive
0081 ; unsigned char radiostate,RxLen;
0081 ; RadioStartReceive();
0081 10 push X
0082 7C0000 xcall _RadioStartReceive
0085 20 pop X
0086 8053 xjmp L8
0088 L7:
0088 .dbline 67
0088 ; while(1)
0088 ; {
0088 .dbline 68
0088 ; radiostate = RadioGetReceiveState();
0088 10 push X
0089 7C0000 xcall _RadioGetReceiveState
008C 62D000 mov REG[0xd0],>__r0
008F 20 pop X
0090 5400 mov [X+0],A
0092 .dbline 69
0092 ; if((radiostate & (RADIO_ERROR | RADIO_COMPLETE))==RADIO_COMPLETE)
0092 5200 mov A,[X+0]
0094 2103 and A,3
0096 3902 cmp A,2
0098 B02D jnz L10
009A .dbline 70
009A ; {
009A .dbline 71
009A ; RxLen = RadioEndReceive();
009A 10 push X
009B 7C0000 xcall _RadioEndReceive
009E 62D000 mov REG[0xd0],>__r0
00A1 20 pop X
00A2 5401 mov [X+1],A
00A4 .dbline 72
00A4 ; if(RxLen>0 && RxLen != 0xff)
00A4 5000 mov A,0
00A6 3B01 cmp A,[X+1]
00A8 D016 jnc L12
00AA X2:
00AA 3D01FF cmp [X+1],-1
00AD A011 jz L12
00AF .dbline 73
00AF ; {
00AF .dbline 74
00AF ; if(AppBuf[0])
00AF 62D000 mov REG[0xd0],>_AppBuf
00B2 3C0000 cmp [_AppBuf],0
00B5 A006 jz L14
00B7 .dbline 75
00B7 ; {
00B7 .dbline 76
00B7 ; RED_ON;
00B7 41007F and REG[ 0],127
00BA .dbline 77
00BA ; }
00BA 8004 xjmp L15
00BC L14:
00BC .dbline 79
00BC ; else
00BC ; {
00BC .dbline 80
00BC ; RED_OFF;
00BC 430080 or REG[ 0],-128
00BF .dbline 81
00BF ; }
00BF L15:
00BF .dbline 82
00BF ; }
00BF L12:
00BF .dbline 83
00BF ; RadioStartReceive();
00BF 10 push X
00C0 7C0000 xcall _RadioStartReceive
00C3 20 pop X
00C4 .dbline 84
00C4 8015 xjmp L11
00C6 L10:
00C6 .dbline 84
00C6 ; }else if(radiostate & RADIO_ERROR)
00C6 480001 tst [X+0],1
00C9 A010 jz L16
00CB .dbline 85
00CB ; {
00CB .dbline 86
00CB ; RxLen = RadioEndReceive();
00CB 10 push X
00CC 7C0000 xcall _RadioEndReceive
00CF 62D000 mov REG[0xd0],>__r0
00D2 20 pop X
00D3 5401 mov [X+1],A
00D5 .dbline 87
00D5 ; RadioStartReceive();
00D5 10 push X
00D6 7C0000 xcall _RadioStartReceive
00D9 20 pop X
00DA .dbline 88
00DA ; }
00DA L16:
00DA L11:
00DA .dbline 89
00DA L8:
00DA .dbline 66
00DA 8FAD xjmp L7
00DC X1:
00DC .dbline -2
00DC .dbline 90
00DC ; }
00DC ; }
00DC L6:
00DC 38FE add SP,-2
00DE 20 pop X
00DF .dbline 0 ; func end
00DF 7F ret
00E0 .dbsym l RxLen 1 c
00E0 .dbsym l radiostate 0 c
00E0 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -