?? cc1100.lis
字號:
.module CC1100.c
.area text(rom, con, rel)
0000 .dbfile D:\WIRELE~1\CC1020~1\SoftWare\SoftWare\CC1100.c
0000 .dbfunc e CC1100Rst _CC1100Rst fV
0000 ; i -> R20
.even
0000 _CC1100Rst::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 25
0002 ; /****************************************************/
0002 ; /* Application note */
0002 ; /* Reference design : CC1100 RF Test Board */
0002 ; /* File: CC1100.c */
0002 ; /* Revision: 1.0 */
0002 ; /* Description: */
0002 ; /* Microcontroller:ATmega48/48V */
0002 ; /* Author: Zcg, Field Applications Engineer, SunRay*/
0002 ; /****************************************************/
0002 ;
0002 ; #include "iom88v.h"
0002 ; #include "macros.h"
0002 ; #include "main.h"
0002 ; #include "CC1100.h"
0002 ;
0002 ; /*
0002 ; ************************************************************
0002 ; *Description:復位CC1100
0002 ; *Arguments :none
0002 ; *Returns :none
0002 ; *Notes :
0002 ; ************************************************************
0002 ; */
0002 ; void CC1100Rst (void)
0002 ; {
0002 .dbline 28
0002 ; INT8U i;
0002 ;
0002 ; SCLK_H;
0002 459A sbi 0x8,5
0004 .dbline 29
0004 ; SI_L;
0004 4498 cbi 0x8,4
0006 .dbline 30
0006 ; CS_L;
0006 4398 cbi 0x8,3
0008 .dbline 31
0008 ; CS_H;
0008 439A sbi 0x8,3
000A .dbline 32
000A 4427 clr R20
000C 01C0 rjmp L5
000E L2:
000E .dbline 32
000E L3:
000E .dbline 32
000E 4395 inc R20
0010 L5:
0010 .dbline 32
0010 ; for (i = 0; i < 100; i++); //delay 50.63us
0010 4436 cpi R20,100
0012 E8F3 brlo L2
0014 .dbline 33
0014 ; SCLK_L;
0014 4598 cbi 0x8,5
0016 .dbline 34
0016 ; CS_L;
0016 4398 cbi 0x8,3
0018 L6:
0018 .dbline 35
0018 L7:
0018 .dbline 35
0018 ; while (SO_STATE);
0018 3299 sbic 0x6,2
001A FECF rjmp L6
001C .dbline 37
001C ;
001C ; ShiftOutByte(CC1100_SRES); //復位命令
001C 00E3 ldi R16,48
001E 7AD0 rcall _ShiftOutByte
0020 L9:
0020 .dbline 39
0020 L10:
0020 .dbline 39
0020 ;
0020 ; while (SO_STATE);
0020 3299 sbic 0x6,2
0022 FECF rjmp L9
0024 .dbline 40
0024 ; CS_H;
0024 439A sbi 0x8,3
0026 .dbline -2
0026 L1:
0026 00D0 rcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r i 20 c
002A .dbend
002A .dbfunc e CC1100Strobe _CC1100Strobe fV
002A ; strobe -> R20
.even
002A _CC1100Strobe::
002A 00D0 rcall push_gset1
002C 402F mov R20,R16
002E .dbline -1
002E .dbline 52
002E ; }
002E ;
002E ; /*
002E ; ************************************************************
002E ; *Description:寫CC1100控制命令
002E ; *Arguments :strobe:控制命令
002E ; *Returns :none
002E ; *Notes :
002E ; ************************************************************
002E ; */
002E ; void CC1100Strobe (INT8U strobe)
002E ; {
002E .dbline 53
002E ; SCLK_L; //寫控制命令
002E 4598 cbi 0x8,5
0030 .dbline 55
0030 ; //CS_L;
0030 ; CS_H; //3V與5V系統相連,保證平時為低電平
0030 439A sbi 0x8,3
0032 .dbline 56
0032 ; CS_L;
0032 4398 cbi 0x8,3
0034 .dbline 57
0034 ; ShiftOutByte(strobe);
0034 042F mov R16,R20
0036 6ED0 rcall _ShiftOutByte
0038 .dbline 59
0038 ; //CS_H;
0038 ; CS_H; //3V與5V系統相連,保證平時為低電平
0038 439A sbi 0x8,3
003A .dbline 60
003A ; CS_L;
003A 4398 cbi 0x8,3
003C .dbline -2
003C L12:
003C 00D0 rcall pop_gset1
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r strobe 20 c
0040 .dbend
0040 .dbfunc e CC1100ReadReg _CC1100ReadReg fc
0040 ; value -> R20
0040 ; addr -> R20
.even
0040 _CC1100ReadReg::
0040 00D0 rcall push_gset1
0042 402F mov R20,R16
0044 .dbline -1
0044 .dbline 72
0044 ; }
0044 ;
0044 ; /*
0044 ; ************************************************************
0044 ; *Description:讀CC1100單個寄存器
0044 ; *Arguments :addr:地址
0044 ; *Returns :數據
0044 ; *Notes :
0044 ; ************************************************************
0044 ; */
0044 ; INT8U CC1100ReadReg (INT8U addr)
0044 ; {
0044 .dbline 75
0044 ; INT8U value;
0044 ;
0044 ; SCLK_L; //寫地址
0044 4598 cbi 0x8,5
0046 .dbline 77
0046 ; //CS_L;
0046 ; CS_H; //3V與5V系統相連,保證平時為低電平
0046 439A sbi 0x8,3
0048 .dbline 78
0048 ; CS_L;
0048 4398 cbi 0x8,3
004A .dbline 79
004A ; addr |= 0x80; //讀寄存器地址
004A 4068 ori R20,128
004C .dbline 80
004C ; ShiftOutByte(addr);
004C 042F mov R16,R20
004E 62D0 rcall _ShiftOutByte
0050 .dbline 82
0050 ;
0050 ; value = ShiftInByte(); //讀數據
0050 54D0 rcall _ShiftInByte
0052 402F mov R20,R16
0054 .dbline 84
0054 ; //CS_H;
0054 ; CS_H; //3V與5V系統相連,保證平時為低電平
0054 439A sbi 0x8,3
0056 .dbline 85
0056 ; CS_L;
0056 4398 cbi 0x8,3
0058 .dbline 87
0058 ;
0058 ; return value;
0058 .dbline -2
0058 L13:
0058 00D0 rcall pop_gset1
005A .dbline 0 ; func end
005A 0895 ret
005C .dbsym r value 20 c
005C .dbsym r addr 20 c
005C .dbend
005C .dbfunc e CC1100WriteReg _CC1100WriteReg fV
005C ; value -> R20
005C ; addr -> R22
.even
005C _CC1100WriteReg::
005C 00D0 rcall push_gset2
005E 422F mov R20,R18
0060 602F mov R22,R16
0062 .dbline -1
0062 .dbline 99
0062 ; }
0062 ;
0062 ; /*
0062 ; ************************************************************
0062 ; *Description:寫CC1100單個寄存器
0062 ; *Arguments :addr:地址; value:數據
0062 ; *Returns :none
0062 ; *Notes :
0062 ; ************************************************************
0062 ; */
0062 ; void CC1100WriteReg (INT8U addr, INT8U value)
0062 ; {
0062 .dbline 100
0062 ; SCLK_L; //寫地址
0062 4598 cbi 0x8,5
0064 .dbline 102
0064 ; //CS_L;
0064 ; CS_H; //3V與5V系統相連,保證平時為低電平
0064 439A sbi 0x8,3
0066 .dbline 103
0066 ; CS_L;
0066 4398 cbi 0x8,3
0068 .dbline 104
0068 ; ShiftOutByte(addr);
0068 062F mov R16,R22
006A 54D0 rcall _ShiftOutByte
006C .dbline 106
006C ;
006C ; ShiftOutByte(value); //寫數據
006C 042F mov R16,R20
006E 52D0 rcall _ShiftOutByte
0070 .dbline 108
0070 ; //CS_H;
0070 ; CS_H; //3V與5V系統相連,保證平時為低電平
0070 439A sbi 0x8,3
0072 .dbline 109
0072 ; CS_L;
0072 4398 cbi 0x8,3
0074 .dbline -2
0074 L14:
0074 00D0 rcall pop_gset2
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbsym r value 20 c
0078 .dbsym r addr 22 c
0078 .dbend
0078 .dbfunc e CC1100ReadStatus _CC1100ReadStatus fc
0078 ; value -> R20
0078 ; addr -> R20
.even
0078 _CC1100ReadStatus::
0078 00D0 rcall push_gset1
007A 402F mov R20,R16
007C .dbline -1
007C .dbline 122
007C ; }
007C ;
007C ;
007C ; /*
007C ; ************************************************************
007C ; *Description:讀CC1100狀態寄存器
007C ; *Arguments :addr:地址
007C ; *Returns :狀態值
007C ; *Notes :
007C ; ************************************************************
007C ; */
007C ; INT8U CC1100ReadStatus (INT8U addr)
007C ; {
007C .dbline 125
007C ; INT8U value;
007C ;
007C ; SCLK_L; //寫地址
007C 4598 cbi 0x8,5
007E .dbline 127
007E ; //CS_L;
007E ; CS_H; //3V與5V系統相連,保證平時為低電平
007E 439A sbi 0x8,3
0080 .dbline 128
0080 ; CS_L;
0080 4398 cbi 0x8,3
0082 .dbline 129
0082 ; addr |= 0xC0; //讀狀態寄存器地址
0082 406C ori R20,192
0084 .dbline 130
0084 ; ShiftOutByte(addr);
0084 042F mov R16,R20
0086 46D0 rcall _ShiftOutByte
0088 .dbline 132
0088 ;
0088 ; value = ShiftInByte(); //讀狀態
0088 38D0 rcall _ShiftInByte
008A 402F mov R20,R16
008C .dbline 134
008C ; //CS_H;
008C ; CS_H; //3V與5V系統相連,保證平時為低電平
008C 439A sbi 0x8,3
008E .dbline 135
008E ; CS_L;
008E 4398 cbi 0x8,3
0090 .dbline 137
0090 ;
0090 ; return value;
0090 .dbline -2
0090 L15:
0090 00D0 rcall pop_gset1
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbsym r value 20 c
0094 .dbsym r addr 20 c
0094 .dbend
0094 .dbfunc e CC1100ReadBurstReg _CC1100ReadBurstReg fV
0094 ; i -> R20
0094 ; cnt -> R22
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -