📄 cc1100_tx.lst
字号:
C51 COMPILER V8.02 CC1100_TX 11/15/2007 11:51:04 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CC1100_TX
OBJECT MODULE PLACED IN CC1100_TX.OBJ
COMPILER INVOKED BY: C:\silabs\IDEfiles\C51\BIN\C51.exe CC1100_TX.c DB OE
line level source
1 //-----------------------------------------------------------------------------
2 // CC1100.c
3 //-----------------------------------------------------------------------------
4 // Copyright (C) 2005 Silicon Laboratories, Inc.
5 //
6 // AUTH: JS
7 // DATE: 03 JUL 02
8 //
9 // This program flashes the green LED on the C8051F31x target board about
10 // five times a second using the interrupt handler for Timer2.
11 //
12 // Target: C8051F31x
13 //
14 // Tool chain: KEIL Eval 'c'
15 //
16
17 //-----------------------------------------------------------------------------
18 // Includes
19 //-----------------------------------------------------------------------------
20 #include <c8051f310.h> // SFR declarations
21 #include <intrins.h>
22 #include <string.h>
23 #include "CC1100.h"
24
25
26 #define INT8U unsigned char
27 #define INT16U unsigned int
28
29
30
31
32 #define WRITE_BURST 0x40 //连续写入
33 #define READ_SINGLE 0x80 //读
34 #define READ_BURST 0xC0 //连续读
35 #define BYTES_IN_RXFIFO 0x7F //接收缓冲区的有效字节数
36 #define CRC_OK 0x80 //CRC校验通过位标志
37
38
39
40 //-----------------------------------------------------------------------------
41 // 16-bit SFR Definitions for 'F30x
42 //-----------------------------------------------------------------------------
43
44 sfr16 TMR2RL = 0xca; // Timer2 reload value
45 sfr16 TMR2 = 0xcc; // Timer2 counter
46
47 //-----------------------------------------------------------------------------
48 // Global CONSTANTS
49 //-----------------------------------------------------------------------------
50
51 #define SYSCLK 24500000 // SYSCLK frequency in Hz
52
53 #define BAUDRATE 9600
54
55
C51 COMPILER V8.02 CC1100_TX 11/15/2007 11:51:04 PAGE 2
56
57
58
59 //--------------------------------------------------------------------------------------------------------
---
60
61 //定义CC1100模块接口
62 sbit SCK = P0^0;
63 sbit MISO = P0^1;
64
65 sbit MOSI = P0^6;
66 sbit GDO0 = P0^7;
67 sbit CS_CC1100 = P2^0;
68 sbit GDO2 = P2^1;
69
70
71 //定义接口
72 sbit TX = P0^4;
73 sbit RX = P0^5;
74
75 sbit LED = P3^3; // LED='0' means ON
76
77
78
79 /****************************************************************************************
80 //全局变量定义
81 /****************************************************************************************/
82 INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
83
84
85
86 //-----------------------------------------------------------------------------
87 // Function PROTOTYPES
88 //-----------------------------------------------------------------------------
89 void SYSCLK_Init (void);
90 void PORT_Init (void);
91
92
93 void UART0_Init(void);
94 void SendCh(INT8U c);
95
96
97 void delay(unsigned int s);
98 INT8U SpiReadWrite(INT8U dat);
99 void halSpiWriteReg(INT8U addr, INT8U value);
100 void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count);
101 void halSpiStrobe(INT8U strobe);
102 INT8U halSpiReadReg(INT8U addr);
103 void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count);
104 INT8U halSpiReadStatus(INT8U addr);
105
106
107
108 void halWait(INT16U timeout);
109 void RESET_CC1100(void);
110 void POWER_UP_RESET_CC1100(void);
111 void halRfWriteRfSettings(void);
112 void Init_CC1100(void);
113
114
115
116
C51 COMPILER V8.02 CC1100_TX 11/15/2007 11:51:04 PAGE 3
117 void halRfSendPacket(INT8U *txBuffer,INT8U size);
118 INT8U halRfReceivePacket(INT8U *rxBuffer,INT8U length);
119
120 //-----------------------------------------------------------------------------
121 // MAIN Routine
122 //-----------------------------------------------------------------------------
123 void main (void) {
124 1
125 1 // INT8U TT,TT1;
126 1 INT8U arrTx[4];
127 1 INT8U arrRx[4]={0x55,0x22,0x65,0xAA};
128 1
129 1
130 1 PCA0MD &= ~0x40; //disable watchdog timer
131 1 PORT_Init();
132 1 SYSCLK_Init();
133 1 UART0_Init();
134 1
135 1 //
136 1 // TT1=SpiReadWrite(TT);
137 1 Init_CC1100();
138 1
139 1
140 1 // LED = 0;
141 1 //
142 1 // SendCh(0x55);
143 1 // halSpiWriteReg(CCxxx0_FSCTRL0,rfSettings.FSCTRL2);
144 1
145 1 arrTx[0] = 0x55;
146 1 arrTx[1] = 0x0A;
147 1 arrTx[2] = 0xCC;
148 1
149 1 arrTx[3] = 0x33;
150 1
151 1
152 1
153 1 while(1)
154 1 {
155 2 halRfSendPacket(arrTx, 4);
156 2
157 2 LED =~LED;
158 2
159 2 delay(60000);
160 2
161 2
162 2 // if(halRfReceivePacket(arrRx,4))
163 2 // {
164 2
165 2
166 2
167 2 // SendCh(arrRx[0]);
168 2 // SendCh(arrRx[1]);
169 2 // SendCh(arrRx[2]);
170 2 // SendCh(arrRx[3]);
171 2
172 2 // }
173 2
174 2
175 2
176 2 }
177 1
178 1
C51 COMPILER V8.02 CC1100_TX 11/15/2007 11:51:04 PAGE 4
179 1 }
180
181
182
183
184 /*****************************************************************************************
185 //函数名:void PORT_Init (void)
186 //输入:无
187 //输出:无
188 //功能描述:
189 /*****************************************************************************************/
190 void PORT_Init (void)
191 {
192 1 P0MDOUT = 0x51;
193 1 P2MDOUT = 0x01;
194 1 P3MDOUT = 0x08;
195 1 XBR0 = 0x01;
196 1 XBR1 = 0xC0;
197 1
198 1 CS_CC1100 = 1;
199 1 SCK = 0;
200 1 MISO = 1;
201 1 MOSI = 0;
202 1 GDO0 = 1;
203 1 GDO2 = 1;
204 1 LED = 1;
205 1 CS_CC1100 = 1;
206 1
207 1 }
208
209
210 void SYSCLK_Init(void)
211 {
212 1 OSCICN = 0x83;
213 1 CLKSEL = 0x00;
214 1
215 1 }
216
217
218 /*****************************************************************************************
219 //函数名:void UART0_Init(void)
220 //功能描述:初始化串口0,9600,8,N
221 /*****************************************************************************************/
222 void UART0_Init(void)
223 {
224 1 SCON0 = 0x10; //串口方式1,8,允许接收
225 1 TMOD |= 0x20; //定时器1工作方式1,8 autoload
226 1 TH1 = 0x96;
227 1 TL1 = 0x96;
228 1
229 1 TR1 = 1; //启动定时器1
230 1 ES0 = 0;
231 1 }
232
233 /*****************************************************************************************
234 //函数名:void SendCh(INT8U c)
235 //输入:无
236 //输出:无
237 //功能描述:串口发送一个字符
238 /*****************************************************************************************/
239 void SendCh(INT8U c)
240 {
C51 COMPILER V8.02 CC1100_TX 11/15/2007 11:51:04 PAGE 5
241 1 EA = 0;
242 1
243 1 TI0 = 0;
244 1 SBUF0 = c;
245 1 while(!TI0);
246 1 TI0 = 0;
247 1 EA = 1;
248 1 }
249
250
251
252
253 //*****************************************************************************************
254 //函数名:void delay(unsigned int s)
255 //输入:时间
256 //输出:无
257 //功能描述:普通廷时
258 //*****************************************************************************************
259 void delay(unsigned int s)
260 {
261 1 unsigned int i;
262 1 for(i=0; i<s; i++);
263 1 for(i=0; i<s; i++);
264 1 for(i=0; i<s; i++);
265 1 }
266
267
268 //*****************************************************************************************
269 //函数名:INT8U SpiReadWrite(INT8U dat)
270 //输入:发送的数据
271 //输出:无
272 //功能描述:SPI发送一个字节
273 //*****************************************************************************************
274 INT8U SpiReadWrite(INT8U dat)
275 {
276 1 INT8U i,temp;
277 1
278 1 temp = 0;
279 1 SCK = 0;
280 1 _nop_();
281 1 for(i=0; i<8; i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -