⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 Keil环境下编写的NRF9E5的应用软件
💻 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 + -