?? qnrf.txt
字號:
//文件名:main.c
/**************************************************
*
* nRF2401A PTR4000模塊簡單通訊測試
* 使用CPU:mega16
* 描述: 如果數據通訊正確,則LED燈閃爍;
* 注意:
1、nef2401A配置字是先寫第15字節的!!
2、發送后要延時等發送結束后才能轉回接收模式,否則數據發送不出
*
* 時間:2007年12月
* www.goodmcu.cn
* www.goodmcu.com
*
* 編譯環境:IAR AVR V4.20A
* 硬件實驗平臺:TY-AVR-J2 + PTR4000模塊 各2塊
*
* 連接方式:
* PA0——PWR
* PA1——CE
* PA2——CS
* PA4——DR1
* PA5——DATA
*
* PD5—— LED 用于通訊的狀態指示燈
*
* 外接11.059Mhz晶振(需要設CKSEL=1111 SUT=11)
*
**************************************************/
#include <config.h>
////變量定義////////////////////////////////////////////////////////////////////
uchar TxBuf[SIZE]; //發送緩沖區,所要發送的數據放在這里面
uchar RxBuf[SIZE]; //接收緩沖區
bit bTimer,bRfSend;
uchar T0Cnt,RfCnt;
void main()
{
T0Cnt=T0N;
RfCnt=RFTN;
init_devices(); //CPU初始化
nrf2401A_Init(); //nrf2401A初始化
while (1)
{
if (bTimer)
{
bTimer=0;
}
#ifdef MASTER
if (bRfSend)
{
bRfSend=0;
RfSendProc(); //發送測試
}
#endif
RfRecvProc(); //接收處理
};
}
/*------------------------------------------------------
接收處理
------------------------------------------------------
*/
void RfRecvProc()
{
uchar i;
if ((PINA&(1<<DR2))==0) return;//DR=1時表示數據接收對而且Crc正確
//已經接收到數據
nrf2401A_ReadData();//讀出...
for(i=0;i<10;i++)
{
if(RxBuf[i]!=(i+i))
return;
}
//數據接收正確...燈指示
CPL(PORTD,LED);
//從機回送數據包,這樣雙方都能指示是否收到有效數據包
#ifndef MASTER
DelayMs(5);
RfSendProc();
#endif
}
/*------------------------------------------------------
發送測試
------------------------------------------------------
*/
void RfSendProc()
{
uchar i;
for (i=0;i<32;i++) TxBuf[i]=i+i;
nrf2401A_SendData(); //發送測試數據
DelayMs(5); //必須,馬上轉回RxMode的話數據發不出
nrf2401A_RxOn(); //重新回到接收狀態
}
/*------------------------------------------------------
延時程序
------------------------------------------------------
*/
//毫秒級延時
void DelayMs(uchar ms)
{
char i;
for (i=0;i<ms;i++)
{
DelayUs(1000);
}
return;
}
//微秒級延時
void DelayUs(uint us)
{
uint i;
for (i=0;i<us;i++)
{
__no_operation();
__no_operation();
__no_operation();
__no_operation();
__no_operation();
__no_operation();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -