📄 1100.lst
字号:
195
196 0xEA, // FSCAL3 Frequency synthesizer calibration.
197 0x2A, // FSCAL2 Frequency synthesizer calibration.
198 0x00, // FSCAL1 Frequency synthesizer calibration.
199 0x11, // FSCAL0 Frequency synthesizer calibration.
200 0x59, // FSTEST Frequency synthesizer calibration.
201 0x81, // TEST2 Various test settings.
202 0x35, // TEST1 Various test settings.
203 0x09, // TEST0 Various test settings.
204 0x0B, // IOCFG2 GDO2 output pin configuration.
205 0x06, // IOCFG0D GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed p
-seudo register explanation.
206
207 0x04, // PKTCTRL1 Packet automation control.
208 0x05, // PKTCTRL0 Packet automation control.
209 0x00, // ADDR Device address.
210 0x0c // PKTLEN Packet length.
211 };
212 //*****************************************************************************************
213 //函数名:delay(unsigned int s)
214 //输入:时间
215 //输出:无
216 //功能描述:普通廷时,内部用
217 //*****************************************************************************************
218 static void delay(unsigned int s)
219 {
220 1 unsigned int i;
221 1 for(i=0; i<s; i++);
222 1 for(i=0; i<s; i++);
223 1 }
224
225
226 void halWait(INT16U timeout) {
227 1 do {
228 2 _nop_();
229 2 _nop_();
230 2 _nop_();
231 2 _nop_();
232 2 _nop_();
233 2 _nop_();
234 2 _nop_();
235 2 _nop_();
236 2 _nop_();
237 2 _nop_();
238 2 _nop_();
239 2 _nop_();
C51 COMPILER V7.06 1100 12/20/2007 00:40:14 PAGE 5
240 2 _nop_();
241 2 _nop_();
242 2 _nop_();
243 2 } while (--timeout);
244 1 }
245
246
247 void SpiInit(void)
248 {
249 1 CSN=0;
250 1 SCK=0;
251 1 CSN=1;
252 1 }
253
254 /*****************************************************************************************
255 //函数名:CpuInit()
256 //输入:无
257 //输出:无
258 //功能描述:SPI初始化程序
259 /*****************************************************************************************/
260 void CpuInit(void)
261 {
262 1 SpiInit();
263 1 delay(5000);
264 1 }
265
266
267 //*****************************************************************************************
268 //函数名:SpisendByte(INT8U dat)
269 //输入:发送的数据
270 //输出:无
271 //功能描述:SPI发送一个字节
272 //*****************************************************************************************
273 INT8U SpiTxRxByte(INT8U dat)
274 {
275 1 INT8U i,temp;
276 1 temp = 0;
277 1
278 1 SCK = 0;
279 1 for(i=0; i<8; i++)
280 1 {
281 2 if(dat & 0x80)
282 2 {
283 3 MOSI = 1;
284 3 }
285 2 else MOSI = 0;
286 2 dat <<= 1;
287 2
288 2 SCK = 1;
289 2 _nop_();
290 2 _nop_();
291 2
292 2 temp <<= 1;
293 2 if(MISO)temp++;
294 2 SCK = 0;
295 2 _nop_();
296 2 _nop_();
297 2 }
298 1 return temp;
299 1 }
300
301 //*****************************************************************************************
C51 COMPILER V7.06 1100 12/20/2007 00:40:14 PAGE 6
302 //函数名:void RESET_CC1100(void)
303 //输入:无
304 //输出:无
305 //功能描述:复位CC1100
306 //*****************************************************************************************
307 void RESET_CC1100(void)
308 {
309 1 CSN = 0;
310 1 while (MISO);
311 1 SpiTxRxByte(CCxxx0_SRES); //写入复位命令
312 1 while (MISO);
313 1 CSN = 1;
314 1 }
315
316 //*****************************************************************************************
317 //函数名:void POWER_UP_RESET_CC1100(void)
318 //输入:无
319 //输出:无
320 //功能描述:上电复位CC1100
321 //*****************************************************************************************
322 void POWER_UP_RESET_CC1100(void)
323 {
324 1 CSN = 1;
325 1 halWait(1);
326 1 CSN = 0;
327 1 halWait(1);
328 1 CSN = 1;
329 1 halWait(41);
330 1 RESET_CC1100(); //复位CC1100
331 1 }
332
333 //*****************************************************************************************
334 //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
335 //输入:地址和配置字
336 //输出:无
337 //功能描述:SPI写寄存器
338 //*****************************************************************************************
339 void halSpiWriteReg(INT8U addr, INT8U value)
340 {
341 1 CSN = 0;
342 1 while (MISO);
343 1 SpiTxRxByte(addr); //写地址
344 1 SpiTxRxByte(value); //写入配置
345 1 CSN = 1;
346 1 }
347
348 //*****************************************************************************************
349 //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
350 //输入:地址,写入缓冲区,写入个数
351 //输出:无
352 //功能描述:SPI连续写配置寄存器
353 //*****************************************************************************************
354 void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
355 {
356 1 INT8U i, temp;
357 1 temp = addr | WRITE_BURST;
358 1 CSN = 0;
359 1 while (MISO);
360 1 SpiTxRxByte(temp);
361 1 for (i = 0; i < count; i++)
362 1 {
363 2 SpiTxRxByte(buffer[i]);
C51 COMPILER V7.06 1100 12/20/2007 00:40:14 PAGE 7
364 2 }
365 1 CSN = 1;
366 1 }
367
368 //*****************************************************************************************
369 //函数名:void halSpiStrobe(INT8U strobe)
370 //输入:命令
371 //输出:无
372 //功能描述:SPI写命令
373 //*****************************************************************************************
374 void halSpiStrobe(INT8U strobe)
375 {
376 1 CSN = 0;
377 1 while (MISO);
378 1 SpiTxRxByte(strobe); //写入命令
379 1 CSN = 1;
380 1 }
381
382
383
384
385
386 //*****************************************************************************************
387 //函数名:INT8U halSpiReadReg(INT8U addr)
388 //输入:地址
389 //输出:该寄存器的配置字
390 //功能描述:SPI读寄存器
391 //*****************************************************************************************
392 INT8U halSpiReadReg(INT8U addr)
393 {
394 1 INT8U temp, value;
395 1 temp = addr|READ_SINGLE;//读寄存器命令
396 1 CSN = 0;
397 1 while (MISO);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -