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