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

📄 24e1_repeater.lst

📁 NRF24E1的信号中继程序,可使得传输距离更远,可用与做工业数据传输.
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.08   24E1_REPEATER                                                         11/17/2006 16:36:46 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 24E1_REPEATER
OBJECT MODULE PLACED IN 24e1_repeater.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 24e1_repeater.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <Nordic\reg24e1.h>
   2          //include "ISD51.H"
   3          
   4          
   5          sbit    LEDR = P0^4;
   6          sbit    LEDG = P0^5;
   7          sbit    KEYR = P0^3;
   8          sbit    KEYT = P0^6;
   9          
  10          #define         int8u           unsigned char
  11          #define         int16u          unsigned int 
  12          #define         FRESELE         0x28                            
  13          #define         ADDR_INDEX      8                         // Index to default address bytes in RxTxConf.buf 
  14          #define         ADDR_COUNT      4                         // Number of address bytes
  15          
  16          
  17          
  18          
  19          struct UARTBUF
  20          {
  21                  int8u Buf[20];
  22                  int8u Counter;
  23                  int8u NewData;
  24          }Rx;
  25          
  26          int8u RFConfig[15] ={
  27                                  0x00,                           //接收频道二有效数据长度
  28                          
  29                                  40,                             //接收频道一有效数据长度
  30                          
  31                                  0x00,0x00,0x00,0x00,0x00,       //接收频道二地址
  32                          
  33                                  0x00,0xcd,0xef,0x12,0xaa,       //接收频道一地址
  34                          
  35                                  0x83,                           //32位地址,16位CRC,使能CRC
  36                                                          //bit7~2:ADDR_W,最大40位
  37                                                          
  38                                                          //bit1:CRC_L
  39                                                          //Logic 0: 8 bit CRC    
  40                                                          //Logic 1: 16 bit CRC
  41                                                          
  42                                                          
  43                                                          //BIT0:CRC_EN
  44                                                          //Logic 0: On-chip CRC generation/checking disabled
  45                                                          //Logic 1: On-chip CRC generation/checking enabled
  46                                                          
  47                                                          
  48                                  0x4f,                           //ShockBurst模式,250 kbps,16M晶振,0dBm最大功率
  49                          
  50                                                          //Bit 15:RX2_EN
  51                                                          //Logic 0: One channel receive
  52                                                          //Logic 1: Two channels receive
  53                                                          
  54                                                          //Bit 14:
  55                                                          //Communication Mode:
C51 COMPILER V7.08   24E1_REPEATER                                                         11/17/2006 16:36:46 PAGE 2   

  56                                                          //Logic 0: nRF2401 operates in direct mode.
  57                                                          //Logic 1: nRF2401 operates in ShockBurst. mode
  58          
  59                                                          //Bit 13:
  60                                                          //RF Data Rate:
  61                                                          //Logic 0: 250 kbps
  62                                                          //Logic 1: 1 Mbps
  63                                                          
  64                                                          //Bit 12-10:Selects the nRF2401 crystal frequency to be used:
  65                                                          //      D12     D11     D10     Crystal Frequency [MHz]
  66                                                          //      0       0       0               4
  67                                                          //      0       0       1               8
  68                                                          //      0       1       0               12
  69                                                          //      0       1       1               16
  70                                                          //      1       0       0               20
  71                                                          
  72                                                          //Bit 9-8:RF_PWR: Sets nRF2401 RF output power in transmit mode:
  73                                                          //      D9      D8      P [dBm]
  74                                                          //      0       0       -20
  75                                                          //      0       1       -10
  76                                                          //      1       0       -5
  77                                                          //      1       1       0
  78                                                          
  79                                                          
  80                                                          
  81                                  0x04                            //2400+4*1=2404MHZ=2.404G,发送模式
  82                          
  83                                                          //Bit 7 – 1:RF_CH#: Sets the frequency channel the nRF2401 operates on.
  84                                                          //Channelrf = 2400MHZ + RF_CH# * 1.0MHZ
  85                                                          
  86                                                          //Bit 0:Set active mode:
  87                                                          //Logic 0: transmit mode
  88                                                          //Logic 1: receive mode
  89                                  };
  90          
  91          int8u RFConfig2[15] ={
  92                                  0x08,                           //接收频道二有效数据长度
  93                          
  94                                  0x08,                           //接收频道一有效数据长度
  95                          
  96                                  0x00,0x00,0x00,0x00,0x00,       //接收频道二地址
  97                          
  98                                  0x00,0xdc,0xef,0x12,0xaa,       //接收频道一地址
  99                          
 100                                  0x83,                           //32位地址,16位CRC,使能CRC
 101                                                          //bit7~2:ADDR_W,最大40位
 102                                                          
 103                                                          //bit1:CRC_L
 104                                                          //Logic 0: 8 bit CRC    
 105                                                          //Logic 1: 16 bit CRC
 106                                                          
 107                                                          
 108                                                          //BIT0:CRC_EN
 109                                                          //Logic 0: On-chip CRC generation/checking disabled
 110                                                          //Logic 1: On-chip CRC generation/checking enabled
 111                                                          
 112                                                          
 113                                  0x4f,                           //ShockBurst模式,250 kbps,16M晶振,0dBm最大功率
 114                          
 115                                                          //Bit 15:RX2_EN
 116                                                          //Logic 0: One channel receive
 117                                                          //Logic 1: Two channels receive
C51 COMPILER V7.08   24E1_REPEATER                                                         11/17/2006 16:36:46 PAGE 3   

 118                                                          
 119                                                          //Bit 14:
 120                                                          //Communication Mode:
 121                                                          //Logic 0: nRF2401 operates in direct mode.
 122                                                          //Logic 1: nRF2401 operates in ShockBurst. mode
 123          
 124                                                          //Bit 13:
 125                                                          //RF Data Rate:
 126                                                          //Logic 0: 250 kbps
 127                                                          //Logic 1: 1 Mbps
 128                                                          
 129                                                          //Bit 12-10:Selects the nRF2401 crystal frequency to be used:
 130                                                          //      D12     D11     D10     Crystal Frequency [MHz]
 131                                                          //      0       0       0               4
 132                                                          //      0       0       1               8
 133                                                          //      0       1       0               12
 134                                                          //      0       1       1               16
 135                                                          //      1       0       0               20
 136                                                          
 137                                                          //Bit 9-8:RF_PWR: Sets nRF2401 RF output power in transmit mode:
 138                                                          //      D9      D8      P [dBm]
 139                                                          //      0       0       -20
 140                                                          //      0       1       -10
 141                                                          //      1       0       -5
 142                                                          //      1       1       0
 143                                                          
 144                                                          
 145                                                          
 146                                  0x18                            //2400+4*1=2404MHZ=2.404G,发送模式
 147                          
 148                                                          //Bit 7 – 1:RF_CH#: Sets the frequency channel the nRF2401 operates on.
 149                                                          //Channelrf = 2400MHZ + RF_CH# * 1.0MHZ
 150                                                          
 151                                                          //Bit 0:Set active mode:
 152                                                          //Logic 0: transmit mode
 153                                                          //Logic 1: receive mode
 154                                  };
 155          
 156          
 157          
 158          int8u rfAddress[4] = { 0xcd, 0xef, 0x12, 0xaa };
 159          int8u rfAddress2[4] = { 0xdc, 0xef, 0x12, 0xaa };
 160          
 161          int8u timer[2];        // Two utility timers used in radio.c
 162          int8u t0lrel, t0hrel;
 163          int8u buf[8];
 164          
 165          
 166          
 167          
 168          /*****************************************************************************************
 169          //函数名:void Delay100us(int8u n)
 170          //输入:时间
 171          //输出:无
 172          //功能描述:廷时100us
 173          /*****************************************************************************************/
 174          void Delay100us(int8u n)
 175          {
 176   1              int8u i;
 177   1              while(n--)
 178   1              for(i=0;i<35;i++);
 179   1      }
C51 COMPILER V7.08   24E1_REPEATER                                                         11/17/2006 16:36:46 PAGE 4   

 180          
 181          /*****************************************************************************************
 182          //函数名:delay(unsigned int s)
 183          //输入:时间
 184          //输出:无
 185          //功能描述:普通廷时
 186          /*****************************************************************************************/
 187          delay(unsigned int s)
 188          {
 189   1              unsigned int i;
 190   1              for(i=0; i<s; i++);
 191   1              for(i=0; i<s; i++);
 192   1              for(i=0; i<s; i++);
 193   1      }
 194          /*****************************************************************************************
 195          //函数名:int8u SpiReadWrite(int8u b)
 196          //输入:发送的数据
 197          //输出:收到的数据
 198          //功能描述:SPI发送接收一个字节
 199          /*****************************************************************************************/
 200          int8u SpiReadWrite(int8u b)
 201          {
 202   1              EXIF &= ~0x20;                              // Clear SPI interrupt
 203   1              SPI_DATA = b;                               // Move byte to send to SPI data register
 204   1              while((EXIF & 0x20) == 0x00);                // Wait until SPI hs finished transmitting
 205   1              return SPI_DATA;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -