📄 cc1100_tx.lst
字号:
196 //输入:发送的字符串
197 //输出:无
198 //功能描述:发送一个字符串
199 /*****************************************************************************************/
200 void SendStr(INT8U *arr)
201 {
202 1 INT8U i;
203 1
204 1 i = 0;
205 1 while(arr[i] != '\0')
206 1 {
207 2 SendCh(arr[i]);
208 2 i++;
209 2 }
210 1 }
211
212 //*****************************************************************************************
213 //函数名:SpisendByte(INT8U dat)
214 //输入:发送的数据
215 //输出:无
216 //功能描述:SPI发送一个字节
217 //*****************************************************************************************
218 INT8U SpiTxRxByte(INT8U dat)
219 {
220 1 INT8U i,temp;
221 1 temp = 0;
222 1
223 1 SCK = 0;
224 1 for(i=0; i<8; i++)
225 1 {
226 2 if(dat & 0x80)
227 2 {
228 3 MOSI = 1;
229 3 }
230 2 else MOSI = 0;
231 2 dat <<= 1;
232 2
233 2 SCK = 1;
234 2 _nop_();
235 2 _nop_();
236 2
237 2 temp <<= 1;
238 2 if(MISO)temp++;
C51 COMPILER V7.06 CC1100_TX 06/30/2008 11:13:22 PAGE 5
239 2 SCK = 0;
240 2 _nop_();
241 2 _nop_();
242 2 }
243 1 return temp;
244 1 }
245
246 //*****************************************************************************************
247 //函数名:void RESET_CC1100(void)
248 //输入:无
249 //输出:无
250 //功能描述:复位CC1100
251 //*****************************************************************************************
252 void RESET_CC1100(void)
253 {
254 1 CSN = 0;
255 1 while (MISO);
256 1 SpiTxRxByte(CCxxx0_SRES); //写入复位命令
*** ERROR C202 IN LINE 256 OF CC1100_TX.C: 'CCxxx0_SRES': undefined identifier
257 1 while (MISO);
258 1 CSN = 1;
259 1 }
260
261 //*****************************************************************************************
262 //函数名:void POWER_UP_RESET_CC1100(void)
263 //输入:无
264 //输出:无
265 //功能描述:上电复位CC1100
266 //*****************************************************************************************
267 void POWER_UP_RESET_CC1100(void)
268 {
269 1 CSN = 1;
270 1 halWait(1);
271 1 CSN = 0;
272 1 halWait(1);
273 1 CSN = 1;
274 1 halWait(41);
275 1 RESET_CC1100(); //复位CC1100
276 1 }
277
278 //*****************************************************************************************
279 //函数名:void halSpiWriteReg(INT8U addr, INT8U value)
280 //输入:地址和配置字
281 //输出:无
282 //功能描述:SPI写寄存器
283 //*****************************************************************************************
284 void halSpiWriteReg(INT8U addr, INT8U value)
285 {
286 1 CSN = 0;
287 1 while (MISO);
288 1 SpiTxRxByte(addr); //写地址
289 1 SpiTxRxByte(value); //写入配置
290 1 CSN = 1;
291 1 }
292
293 //*****************************************************************************************
294 //函数名:void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
295 //输入:地址,写入缓冲区,写入个数
296 //输出:无
297 //功能描述:SPI连续写配置寄存器
298 //*****************************************************************************************
299 void halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count)
C51 COMPILER V7.06 CC1100_TX 06/30/2008 11:13:22 PAGE 6
300 {
301 1 INT8U i, temp;
302 1 temp = addr | WRITE_BURST;
303 1 CSN = 0;
304 1 while (MISO);
305 1 SpiTxRxByte(temp);
306 1 for (i = 0; i < count; i++)
307 1 {
308 2 SpiTxRxByte(buffer[i]);
309 2 }
310 1 CSN = 1;
311 1 }
312
313 //*****************************************************************************************
314 //函数名:void halSpiStrobe(INT8U strobe)
315 //输入:命令
316 //输出:无
317 //功能描述:SPI写命令
318 //*****************************************************************************************
319 void halSpiStrobe(INT8U strobe)
320 {
321 1 CSN = 0;
322 1 while (MISO);
323 1 SpiTxRxByte(strobe); //写入命令
324 1 CSN = 1;
325 1 }
326
327
328
329
330
331 //*****************************************************************************************
332 //函数名:INT8U halSpiReadReg(INT8U addr)
333 //输入:地址
334 //输出:该寄存器的配置字
335 //功能描述:SPI读寄存器
336 //*****************************************************************************************
337 INT8U halSpiReadReg(INT8U addr)
338 {
339 1 INT8U temp, value;
340 1 temp = addr|READ_SINGLE;//读寄存器命令
341 1 CSN = 0;
342 1 while (MISO);
343 1 SpiTxRxByte(temp);
344 1 value = SpiTxRxByte(0);
345 1 CSN = 1;
346 1 return value;
347 1 }
348
349
350 //*****************************************************************************************
351 //函数名:void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
352 //输入:地址,读出数据后暂存的缓冲区,读出配置个数
353 //输出:无
354 //功能描述:SPI连续写配置寄存器
355 //*****************************************************************************************
356 void halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count)
357 {
358 1 INT8U i,temp;
359 1 temp = addr | READ_BURST; //写入要读的配置寄存器地址和读命令
360 1 CSN = 0;
361 1 while (MISO);
C51 COMPILER V7.06 CC1100_TX 06/30/2008 11:13:22 PAGE 7
362 1 SpiTxRxByte(temp);
363 1 for (i = 0; i < count; i++)
364 1 {
365 2 buffer[i] = SpiTxRxByte(0);
366 2 }
367 1 CSN = 1;
368 1 }
369
370
371 //*****************************************************************************************
372 //函数名:INT8U halSpiReadReg(INT8U addr)
373 //输入:地址
374 //输出:该状态寄存器当前值
375 //功能描述:SPI读状态寄存器
376 //*****************************************************************************************
377 INT8U halSpiReadStatus(INT8U addr)
378 {
379 1 INT8U value,temp;
380 1 temp = addr | READ_BURST; //写入要读的状态寄存器的地址同时写入读命令
381 1 CSN = 0;
382 1 while (MISO);
383 1 SpiTxRxByte(temp);
384 1 value = SpiTxRxByte(0);
385 1 CSN = 1;
386 1 return value;
387 1 }
388
389
390 //*****************************************************************************************
391 //函数名:void halRfWriteRfSettings(RF_SETTINGS *pRfSettings)
392 //输入:无
393 //输出:无
394 //功能描述:配置CC1100的寄存器
395 //*****************************************************************************************
396 void halRfWriteRfSettings(void)
397 {
398 1 halSpiWriteReg(CCxxx0_FSCTRL0, rfSettings.FSCTRL2);//自已加的
*** ERROR C202 IN LINE 398 OF CC1100_TX.C: 'CCxxx0_FSCTRL0': undefined identifier
399 1 // Write register settings
400 1 halSpiWriteReg(CCxxx0_FSCTRL1, rfSettings.FSCTRL1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -