📄 main.lst
字号:
*** ERROR C231 IN LINE 144 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'REN0': redefinition
*** ERROR C231 IN LINE 145 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'MCE0': redefinition
*** ERROR C231 IN LINE 146 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'S0MODE': redefinition
*** ERROR C231 IN LINE 149 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'EX0': redefinition
*** ERROR C231 IN LINE 150 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ET0': redefinition
*** ERROR C231 IN LINE 151 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'EX1': redefinition
*** ERROR C231 IN LINE 152 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ET1': redefinition
*** ERROR C231 IN LINE 153 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ES0': redefinition
*** ERROR C231 IN LINE 154 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ET2': redefinition
*** ERROR C231 IN LINE 155 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'EA': redefinition
*** ERROR C231 IN LINE 158 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PX0': redefinition
*** ERROR C231 IN LINE 159 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PT0': redefinition
*** ERROR C231 IN LINE 160 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PX1': redefinition
*** ERROR C231 IN LINE 161 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PT1': redefinition
*** ERROR C231 IN LINE 162 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PS0': redefinition
*** ERROR C231 IN LINE 163 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'PT2': redefinition
*** ERROR C231 IN LINE 166 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'SI': redefinition
*** ERROR C231 IN LINE 167 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ACK': redefinition
*** ERROR C231 IN LINE 168 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ARBLOST': redefinition
C51 COMPILER V8.08 MAIN 01/02/2009 11:50:56 PAGE 4
*** ERROR C231 IN LINE 169 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'ACKRQ': redefinition
*** ERROR C231 IN LINE 170 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'STO': redefinition
*** ERROR C231 IN LINE 171 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'STA': redefinition
*** ERROR C231 IN LINE 172 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TXMODE': redefinition
*** ERROR C231 IN LINE 173 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'MASTER': redefinition
*** ERROR C231 IN LINE 176 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'T2XCLK': redefinition
*** ERROR C231 IN LINE 177 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TR2': redefinition
*** ERROR C231 IN LINE 178 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'T2SPLIT': redefinition
*** ERROR C231 IN LINE 179 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TF2LEN': redefinition
*** ERROR C231 IN LINE 180 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TF2L': redefinition
*** ERROR C231 IN LINE 181 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TF2H': redefinition
*** ERROR C231 IN LINE 184 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'P': redefinition
*** ERROR C231 IN LINE 185 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'F1': redefinition
*** ERROR C231 IN LINE 186 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'OV': redefinition
*** ERROR C231 IN LINE 187 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'RS0': redefinition
*** ERROR C231 IN LINE 188 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'RS1': redefinition
*** ERROR C231 IN LINE 189 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'F0': redefinition
*** ERROR C231 IN LINE 190 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AC': redefinition
*** ERROR C231 IN LINE 191 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CY': redefinition
*** ERROR C231 IN LINE 194 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CCF0': redefinition
*** ERROR C231 IN LINE 195 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CCF1': redefinition
*** ERROR C231 IN LINE 196 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CCF2': redefinition
*** ERROR C231 IN LINE 197 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CCF3': redefinition
*** ERROR C231 IN LINE 198 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CCF4': redefinition
*** ERROR C231 IN LINE 199 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CR': redefinition
*** ERROR C231 IN LINE 200 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'CF': redefinition
*** ERROR C231 IN LINE 203 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0CM0': redefinition
*** ERROR C231 IN LINE 204 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0CM1': redefinition
*** ERROR C231 IN LINE 205 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0CM2': redefinition
*** ERROR C231 IN LINE 206 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0WINT': redefinition
*** ERROR C231 IN LINE 207 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0BUSY': redefinition
*** ERROR C231 IN LINE 208 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0INT': redefinition
*** ERROR C231 IN LINE 209 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0TM': redefinition
*** ERROR C231 IN LINE 210 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'AD0EN': redefinition
*** ERROR C231 IN LINE 213 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'SPIF': redefinition
*** ERROR C231 IN LINE 214 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'WCOL': redefinition
*** ERROR C231 IN LINE 215 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'MODF': redefinition
*** ERROR C231 IN LINE 216 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'RXOVRN': redefinition
*** ERROR C231 IN LINE 217 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'NSSMD1': redefinition
*** ERROR C231 IN LINE 218 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'NSSMD0': redefinition
*** ERROR C231 IN LINE 219 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'TXBMT': redefinition
*** ERROR C231 IN LINE 220 OF C:\KEIL\C51\INC\CYGNAL\C8051F320.H: 'SPIEN': redefinition
39
40 /** Contain the common radio functions, implemented in radio.c */
41 #include "radio.h"
42 /** Contain the specific radio functions for a radio in ShockBurst,
43 * implemented in sb/radio_sb.c */
44 #include "sb/radio_sb.h"
45 /** Contain the specific radio functions for a radio in Enhanced ShockBurst,
46 * implemented in esb/radio_esb.c */
47 #include "esb/radio_esb.h"
48 /** Contain the specific radio functions for a radio in Enhanced ShockBurst
49 * with Bidirectional data, implemented in pl/radio_pl.c */
50 #include "pl/radio_pl.h"
51 /** Contain the application functions for a radio in ShockBurst,
52 * implemented in sb/application_sb.c */
53 #include "sb/application_sb.h"
54 /** Contain the application functions for a radio in Enhanced ShockBurst,
55 * implemented in esb/application_esb.c */
56 #include "esb/application_esb.h"
57 /** Contain the application functions for a radio in Enhanced ShockBurst
58 * with Bidirectional data, implemented in pl/application_pl.c */
C51 COMPILER V8.08 MAIN 01/02/2009 11:50:56 PAGE 5
59 #include "pl/application_pl.h"
60 /** Contain the functions for delays, system functions and some timers,
61 * implemented in system.c */
62 #include "system.h"
63
64 /**
65 * The possible states of the system.
66 */
67 typedef enum {
68 DEVICE_IDLE = 0, /**< The device is idle */
69 DEVICE_PRX_IDLE, /**< The device will operate in @b PRX mode */
70 DEVICE_PTX_IDLE, /**< The device will operate in @b PTX mode */
71 DEVICE_PRX_SB, /**< The device will operate in @b PRX mode with ShockBurst functionailty */
72 DEVICE_PRX_ESB, /**< The device will operate in @b PRX mode with Enhanced ShockBurst functionailty */
73 DEVICE_PRX_PL, /**< The device will operate in @b PRX mode with Enhanced ShockBurst functionailty with
- Bidirectional data */
74 DEVICE_PTX_SB, /**< The device will operate in @b PTX mode with ShockBurst functionailty */
75 DEVICE_PTX_ESB, /**< The device will operate in @b PTX mode with Enhanced ShockBurst functionailty */
76 DEVICE_PTX_PL, /**< The device will operate in @b PTX mode with Enhanced ShockBurst functionailty with
- Bidirectional data */
77 NO_CHANGE /**< No state change */
78 } state_t;
79
80 /**
81 * The state transistion table. Indicates which state the statemachine
82 * should jump to as next state.
83 *
84 * Example on use:@code
85 next_state = state_machine[current_state][button_pressed];
86 if (next_state == NO_CHANGE)
87 next_state = current_state;
88 @endcode
89 */
90 static const state_t state_machine[][3] =
91 // B1 B2 B3 CURRENT STATE
92 { {DEVICE_PTX_IDLE, DEVICE_PRX_IDLE, NO_CHANGE}, /**< DEVICE_IDLE */
93 {DEVICE_PRX_SB, DEVICE_PRX_ESB, DEVICE_PRX_PL}, /**< DEVICE_PRX_IDLE */
94 {DEVICE_PTX_SB, DEVICE_PTX_ESB, DEVICE_PTX_PL}, /**< DEVICE_PTX_IDLE */
95 {NO_CHANGE, NO_CHANGE, NO_CHANGE}, /**< DEVICE_PRX_SB */
96 {NO_CHANGE, NO_CHANGE, NO_CHANGE}, /**< DEVICE_PRX_ESB */
97 {NO_CHANGE, NO_CHANGE, NO_CHANGE}, /**< DEVICE_PRX_PL */
98 {NO_CHANGE, NO_CHANGE, NO_CHANGE}, /**< DEVICE_PTX_SB */
99 {NO_CHANGE, NO_CHANGE, NO_CHANGE}, /**< DEVICE_PTX_ESB */
100 {NO_CHANGE, NO_CHANGE, NO_CHANGE} /**< DEVICE_PTX_PL */
101 };
102
103 /** LED should be on */
104 #define ON 1
105 /** LED should be off */
106 #define OFF 0
107 /** Function should loop for 0 seconds */
108 #define SEK_0 0
109 /** Function should loop for aprox 1 seconds */
110 #define SEK_1 10
111 /** Function should loop for aprox 2 seconds */
112 #define SEK_2 20
113 /** Function should loop for aprox 3 seconds */
114 #define SEK_3 30
115
116 /** Defines the leds that should be turned on by the show_status() function
117 * and how long the light should be on. Column 1 is LED1 ON/OFF, column 2
118 * is LED2 ON/OFF, column 3 is LED3 ON/OFF,
C51 COMPILER V8.08 MAIN 01/02/2009 11:50:56 PAGE 6
119 * column 4 indicates wheter all light should be turned off (OFF) or if the
120 * pattern already lit up should stay on (ON), column 5 is the time the lights
121 * should stay in a locking loop (rounds of 100ms).
122 */
123 static const uint8_t show_state[][5] =
124 //LED1, LED2, LED3, ALL off after?, Time,
125 {{ON , ON , ON , ON, SEK_0}, /**< DEVICE_IDLE */
126 {OFF, OFF, ON , ON, SEK_0}, /**< DEVICE_PRX_IDLE */
127 {OFF, OFF, OFF, ON, SEK_0}, /**< DEVICE_PTX_IDLE */
128 {ON , OFF, ON , OFF, SEK_3}, /**< DEVICE_PRX_SB */
129 {OFF, ON , ON , OFF, SEK_3}, /**< DEVICE_PRX_ESB */
130 {ON , ON , ON , OFF, SEK_3}, /**< DEVICE_PRX_PL */
131 {ON , OFF, OFF, OFF, SEK_3}, /**< DEVICE_PTX_SB */
132 {OFF, ON , OFF, OFF, SEK_3}, /**< DEVICE_PTX_ESB */
133 {ON , ON , OFF, OFF, SEK_3}, /**< DEVICE_PTX_PL */
134 };
135
136 /** The address of the radio. Parameter to the radio init */
137 static code const uint8_t address[HAL_NRF_AW_5BYTES] = {0x22,0x33,0x44,0x55,0x01};
138
139 /** Implementation of the state transition. Changes state based on the
140 * current state and the value of a pressed button. Waits til button is released
141 * before it returns.
142 *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -