📄 main.c
字号:
/*= main.c (nRF9E5 DEMO) ===================================================================
*
* Copyright (C) 2005
*
* This file is distributed in the hope that it will be useful, but WITHOUT WARRANTY OF ANY KIND.
*
* Author(s): WL
*
* COMPILER:
*
* This program has been tested with Keil C51 V7.08 and 7.09
*
*
*
*==================================================================================================
*/
//
// 01/06/2005 change to not hop, max power
//---------------------------------------------------------
#include <Nordic\reg9e5.h>
#include "util.h"
#include "uart.h"
#include "radio.h"
#include "lm35.h"
void TEST(void);
void ReceiveFile(void);
void send_data(unsigned char num);
void TransmitFile(void);
const char ID[] = "9E5DEMO1234567907654";
static unsigned char idata buf[25];
sbit LEDG =P0^6;
sbit LEDR =P0^5;
sbit PWM =P0^7;
sbit KEYR =P0^3;
sbit KEYT =P0^4;
unsigned char aaa,SQC;
unsigned char bbb;
unsigned char ccc;
unsigned char ddd,EEE;
unsigned char conter; //how many pack is have
unsigned int bh;
void Init(void)
{
unsigned char cklf;
SPICLK = 0; // Max SPI clock
SPI_CTRL = 0x02; // Connect internal SPI controller to Radio
// Switch to 16MHz clock:
RACSN = 0;
SpiReadWrite(RRC | 0x09);
cklf = SpiReadWrite(0) | 0x04;
RACSN = 1;
RACSN = 0;
SpiReadWrite(WRC | 0x09);
SpiReadWrite(cklf);
RACSN = 1;
P0_DIR=P0_DIR&0x1F; //led p0.6 p0.5 P0.7 output
LEDR=0;
LEDG=0;
P0_DIR |= 0x18; // P0.4 /3 is input
InitTimer();
EA = 1;
}
void main(void)
{
Init();
LEDR=0;
LEDG=0;
for (aaa=0;aaa<100;aaa++)
{Delay100us(50);}
LEDR=1;
LEDG=1;
for (aaa=0;aaa<100;aaa++)
{Delay100us(100);}
LEDR=0;
LEDG=0;
while(1)
{
// case 'R':
if (KEYR==0)
{
LEDR=1;
LEDG=0;
InitUart();
ReceiveFile();
}
//case 'T':
if (KEYT==0)
{
LEDR=0;
LEDG=1;
TransmitFile();
}
}
}
//----------------------------------UTAR OUT one byte-------------------
void send_data(unsigned char num)
{
int j;
TI=0;
SBUF=num;
for (j=0;j<10000;j++)
{if (TI)
{TI=0;
break;
}
}
}
//---------------------------------RECVIER-----------------------------
void ReceiveFile(void)
{
unsigned char i2, n,j1;
InitReceiver(20, 0); //TEST IS 20BYTE
while(1)
{
if (ReceivePacket(buf) != 0)
{
LEDG=0;
LEDR=1;
for (i2=0;i2<20;i2++)
{ PutChar(buf[i2]);}
for (j1=0;j1<105;j1++)
{Delay100us(200);} //LEDG 400mS
LEDG=1;
LEDR=1;
}
else
{
LEDR=0;
LEDG=1; // Indicates an error
}
n = 1;
}
}
//----------------------------------------------------------------------------------------------
void TransmitFile(void)
{
unsigned int temp,j;
unsigned char n;
n=0;
InitTransmitter(20, 0);
while(1)
{
for (aaa=0;aaa<20;aaa++)
{buf[aaa]=ID[aaa];}
n=n+1;
buf[19]=n;
temp= ( TransmitPacket(buf));
if (temp==1)
{ LEDR=0;
}
else {LEDG=0; //Y LED OFF
}
if (temp==1)
{ for (j=0;j<25;j++)
{Delay100us(200);} //LEDG 20mS
LEDR=1;
}
else {
for (j=0;j<25;j++)
{Delay100us(200);} //LEDG 400mS
LEDG=1;
}
for (ccc=0;ccc<3;ccc++) //2s
{
for (ddd=0;ddd<100;ddd++) //delay 1s
{Delay100us(100);} //delay10ms
}
}
}
//-------------------------send all---------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -