📄 nrf_perf.lst
字号:
C51 COMPILER V7.50 NRF_PERF 11/20/2005 01:23:28 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE NRF_PERF
OBJECT MODULE PLACED IN nRF_Perf.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE nRF_Perf.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*= nRF_Perf.c ==================================================================
2 *
3 * Development By www.51kaifa.com
4 * Copyright (C) 2005
5 *
6 * 无忧无线SOC开发平台专用测试程序
7 * 版本:1.0
8 *
9 * 2005年7月7日
10 *
11 *===============================================================================
12 */
13
14 #include <Nordic\reg9e5.h>
15
16 #define HFREQ 0 // 0=433MHz, 1=868/915MHz
17 #define POWER 3 // 0=min power...3 = max power
18
19 bit rx_rqst;
20 char rcv_data;
21 unsigned int syn_count;
22
23 unsigned char SpiReadWrite(unsigned char b)
24 {
25 1 EXIF &= ~0x20; // Clear SPI interrupt
26 1 SPI_DATA = b; // Move byte to send to SPI data register
27 1 while((EXIF & 0x20) == 0x00) // Wait until SPI hs finished transmitting
28 1 ;
29 1 return SPI_DATA;
30 1 }
31
32 SpiWrite(unsigned char b)
33 {
34 1 while((EXIF & 0x20) == 0x00) // Wait until SPI hs finished transmitting
35 1 ;
36 1 EXIF &= ~0x20; // Clear SPI interrupt
37 1 SPI_DATA = b; // Move byte to send to SPI data register
38 1 }
39
40 void PutChar(char c)
41 {
42 1 while(!TI)
43 1 ;
44 1 TI = 0;
45 1 SBUF = c;
46 1 }
47
48 void PutString(const char *s)
49 {
50 1 while(*s != 0)
51 1 PutChar(*s++);
52 1 }
53
54
55 void Init(void)
C51 COMPILER V7.50 NRF_PERF 11/20/2005 01:23:28 PAGE 2
56 {
57 1 unsigned char tmp;
58 1
59 1 //SPI 设置
60 1
61 1 SPICLK = 0; // Max SPI clock
62 1 SPI_CTRL = 0x02; // Connect intewrnal SPI controller to Radio
63 1
64 1 // Configure Radio:
65 1 RACSN = 0;
66 1 SpiReadWrite(WRC | 0x03); // Write to RF config Rx_deepess 3 (RX payload)
67 1 SpiReadWrite(0x01); // One byte RX payload
68 1 SpiReadWrite(0x01); // One byte TX payload
69 1 RACSN = 1;
70 1
71 1 RACSN = 0;
72 1 SpiReadWrite(RRC | 0x01); // Read RF config Rx_deepess 1
73 1 tmp = SpiReadWrite(0) & 0xf1; // Clear the power and frequency setting bits
74 1 RACSN = 1;
75 1
76 1 RACSN = 0;
77 1 SpiReadWrite(WRC | 0x01); // Write RF config Rx_deepess 1
78 1 // Change power defined by POWER and to 433 or 868/915MHz defined by HFREQ above:
79 1 SpiReadWrite(tmp | (POWER <<2) | (HFREQ << 1));
80 1 RACSN = 1;
81 1
82 1 RACSN = 0;
83 1 SpiReadWrite(RRC | 0x09); // Read RF config Rx_deepess 1
84 1 tmp = SpiReadWrite(0) | 0x04; // Clear the power and frequency setting bits
85 1 RACSN = 1;
86 1
87 1
88 1 RACSN = 0;
89 1 SpiReadWrite(WRC | 0x09); // Write to RF config Rx_deepess 9 (cpu clk)
90 1 SpiReadWrite(tmp); // One byte RX cpu clk
91 1 RACSN = 1;
92 1
93 1 }
94
95 void uart_init(void)
96 {
97 1 TH1 = 0xE6; // 19200@16MHz (when T1M=1 and SMOD=1)
98 1 CKCON |= 0x30; // T1M=1 (/4 timer clock)
99 1 PCON = 0x80; // SMOD=1 (double baud rate)
100 1 SCON = 0x52; // Serial mode1, enable receiver
101 1 TMOD = 0x20; // Timer1 8bit auto reload
102 1 TR1 = 1; // Start timer1
103 1 P0_ALT = 0x06; // Select alternate functions on pins P0.1 and P0.2
104 1 P0_DIR = 0xAA; // P0.1 (RxD) is input
105 1
106 1 }
107
108 void Transmitstring()
109 {
110 1 TRX_CE = 0;
111 1
112 1 RACSN = 0;
113 1 SpiWrite(WTP);
114 1 SpiWrite(0x23);
115 1 RACSN = 1;
116 1
117 1 TRX_CE = 1;
C51 COMPILER V7.50 NRF_PERF 11/20/2005 01:23:28 PAGE 3
118 1
119 1
120 1 }
121
122 void DR_ISR(void) interrupt 10
123 {
124 1
125 1 EXIF = EXIF & 0xBF;
126 1
127 1 RACSN = 0;
128 1 SpiReadWrite(RRP);
129 1 rcv_data = SpiReadWrite(0);
130 1 RACSN = 1;
131 1
132 1 if (rcv_data == 0x23)
133 1 {
134 2 rx_rqst=1;
135 2 P06 = ~P06;
136 2 }
137 1
138 1 }
139
140 void main(void)
141 {
142 1
143 1 Init();
144 1 uart_init();
145 1
146 1 EX4 = 1;
147 1 PX4 = 1;
148 1
149 1 EA = 1;
150 1
151 1 PutString("hello world!\n");
152 1
153 1 while(1)
154 1 {
155 2
156 2 syn_count++;
157 2
158 2 if (syn_count==32000)
159 2 {
160 3 TXEN = 1;
161 3 }
162 2 if (syn_count==32767)
163 2 {
164 3 Transmitstring();
165 3 P04 = ~P04;
166 3 syn_count=0;
167 3 TXEN = 0;
168 3 }
169 2
170 2 if (rx_rqst==1)
171 2 {
172 3 rx_rqst=0;
173 3 PutChar(rcv_data);
174 3 }
175 2
176 2 }
177 1 }
178
179
C51 COMPILER V7.50 NRF_PERF 11/20/2005 01:23:28 PAGE 4
180 // End
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 311 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 3
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -