📄 f02x_uart1_interrupt.lst
字号:
*** ERROR C202 IN LINE 149 OF F02X_UART1_INTERRUPT.C: 'XBR1': undefined identifier
150 1 XBR2 = 0x44; // Enable crossbar and weak pull-up
*** ERROR C202 IN LINE 150 OF F02X_UART1_INTERRUPT.C: 'XBR2': undefined identifier
151 1 // Enable UART1
152 1
153 1 P0MDOUT |= 0x01; // Set TX pin to push-pull
*** ERROR C202 IN LINE 153 OF F02X_UART1_INTERRUPT.C: 'P0MDOUT': undefined identifier
154 1 }
155
156 //-----------------------------------------------------------------------------
157 // UART1_Init
158 //-----------------------------------------------------------------------------
159 //
160 // Return Value : None
161 // Parameters : None
162 //
163 // Configure the UART1 using Timer1, for <baudrate> and 8-N-1.
164 // This routine configures the UART1 based on the following equation:
165 //
C51 COMPILER V7.06 F02X_UART1_INTERRUPT 04/18/2009 11:16:42 PAGE 4
166 // Baud = (2^SMOD1/32)*(SYSTEMCLOCK*12^(T1M-1))/(256-TH1)
167 //
168 // This equation can be found in the datasheet, Mode1 baud rate using timer1.
169 // The function select the proper values of the SMOD1 and T1M bits to allow
170 // for the proper baud rate to be reached.
171 //-----------------------------------------------------------------------------
172 void UART1_Init (void)
173 {
174 1 SCON1 = 0x50; // SCON1: mode 1, 8-bit UART, enable RX
*** ERROR C202 IN LINE 174 OF F02X_UART1_INTERRUPT.C: 'SCON1': undefined identifier
175 1
176 1 TMOD &= ~0xF0;
*** ERROR C202 IN LINE 176 OF F02X_UART1_INTERRUPT.C: 'TMOD': undefined identifier
177 1 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload
*** ERROR C202 IN LINE 177 OF F02X_UART1_INTERRUPT.C: 'TMOD': undefined identifier
178 1
179 1
180 1 if ( (((SYSTEMCLOCK/BAUDRATE)/256)/16) < 1 )
181 1 {
182 2 PCON |= 0x10; // SMOD1 (PCON.4) = 1 --> UART1 baudrate
*** ERROR C202 IN LINE 182 OF F02X_UART1_INTERRUPT.C: 'PCON': undefined identifier
183 2 // divide-by-two disabled
184 2 CKCON |= 0x10; // Timer1 uses the SYSTEMCLOCK
*** ERROR C202 IN LINE 184 OF F02X_UART1_INTERRUPT.C: 'CKCON': undefined identifier
185 2 TH1 = - ((SYSTEMCLOCK/BAUDRATE)/16);
*** ERROR C202 IN LINE 185 OF F02X_UART1_INTERRUPT.C: 'TH1': undefined identifier
186 2 }
187 1 else if ( (((SYSTEMCLOCK/BAUDRATE)/256)/32) < 1 )
188 1 {
189 2 PCON &= ~0x10; // SMOD1 (PCON.4) = 0 --> UART1 baudrate
*** ERROR C202 IN LINE 189 OF F02X_UART1_INTERRUPT.C: 'PCON': undefined identifier
190 2 // divide-by-two enabled
191 2 CKCON |= 0x10; // Timer1 uses the SYSTEMCLOCK
*** ERROR C202 IN LINE 191 OF F02X_UART1_INTERRUPT.C: 'CKCON': undefined identifier
192 2 TH1 = - ((SYSTEMCLOCK/BAUDRATE)/32);
*** ERROR C202 IN LINE 192 OF F02X_UART1_INTERRUPT.C: 'TH1': undefined identifier
193 2 }
194 1 else if ( ((((SYSTEMCLOCK/BAUDRATE)/256)/16)/12) < 1 )
195 1 {
196 2 PCON |= 0x10; // SMOD1 (PCON.4) = 1 --> UART1 baudrate
*** ERROR C202 IN LINE 196 OF F02X_UART1_INTERRUPT.C: 'PCON': undefined identifier
197 2 // divide-by-two disabled
198 2 CKCON &= ~0x10; // Timer1 uses the SYSTEMCLOCK/12
*** ERROR C202 IN LINE 198 OF F02X_UART1_INTERRUPT.C: 'CKCON': undefined identifier
199 2 TH1 = - (((SYSTEMCLOCK/BAUDRATE)/16)/12);
*** ERROR C202 IN LINE 199 OF F02X_UART1_INTERRUPT.C: 'TH1': undefined identifier
200 2 }
201 1 else if ( ((((SYSTEMCLOCK/BAUDRATE)/256)/32)/12) < 1 )
202 1 {
203 2 PCON &= ~0x10; // SMOD1 (PCON.4) = 0 --> UART1 baudrate
*** ERROR C202 IN LINE 203 OF F02X_UART1_INTERRUPT.C: 'PCON': undefined identifier
204 2 // divide-by-two enabled
205 2 CKCON &= ~0x10; // Timer1 uses the SYSTEMCLOCK/12
*** ERROR C202 IN LINE 205 OF F02X_UART1_INTERRUPT.C: 'CKCON': undefined identifier
206 2 TH1 = - (((SYSTEMCLOCK/BAUDRATE)/32)/12);
*** ERROR C202 IN LINE 206 OF F02X_UART1_INTERRUPT.C: 'TH1': undefined identifier
207 2 }
208 1
209 1 TL1 = TH1; // init Timer1
*** ERROR C202 IN LINE 209 OF F02X_UART1_INTERRUPT.C: 'TL1': undefined identifier
210 1 TR1 = 1; // START Timer1
*** ERROR C202 IN LINE 210 OF F02X_UART1_INTERRUPT.C: 'TR1': undefined identifier
C51 COMPILER V7.06 F02X_UART1_INTERRUPT 04/18/2009 11:16:42 PAGE 5
211 1 TX_Ready = 1; // Flag showing that UART can transmit
212 1 EIE2 = 0x40; // Enable UART1 interrupts
*** ERROR C202 IN LINE 212 OF F02X_UART1_INTERRUPT.C: 'EIE2': undefined identifier
213 1
214 1 EIP2 = 0x40; // Make UART high priority
*** ERROR C202 IN LINE 214 OF F02X_UART1_INTERRUPT.C: 'EIP2': undefined identifier
215 1
216 1 }
217
218 //-----------------------------------------------------------------------------
219 // Interrupt Service Routines
220 //-----------------------------------------------------------------------------
221
222 //-----------------------------------------------------------------------------
223 // UART1_Interrupt
224 //-----------------------------------------------------------------------------
225 //
226 // This routine is invoked whenever a character is entered or displayed on the
227 // Hyperterminal.
228 //
229 //-----------------------------------------------------------------------------
230
231 void UART1_Interrupt (void) interrupt 20
232 {
233 1 if ((SCON1 & 0x01) == 0x01)
*** ERROR C202 IN LINE 233 OF F02X_UART1_INTERRUPT.C: 'SCON1': undefined identifier
234 1 {
235 2 // Check if a new word is being entered
236 2 if( UART_Buffer_Size == 0) {
237 3 UART_Input_First = 0; }
238 2
239 2 SCON1 = (SCON1 & 0xFE); //RI1 = 0;
*** ERROR C202 IN LINE 239 OF F02X_UART1_INTERRUPT.C: 'SCON1': undefined identifier
240 2 Byte = SBUF1; // Read a character from Hyperterminal
*** ERROR C202 IN LINE 240 OF F02X_UART1_INTERRUPT.C: 'SBUF1': undefined identifier
241 2
242 2 if (UART_Buffer_Size < UART_BUFFERSIZE)
243 2 {
244 3 UART_Buffer[UART_Input_First] = Byte; // Store character
245 3
246 3 UART_Buffer_Size++; // Update array's size
247 3
248 3 UART_Input_First++; // Update counter
249 3 }
250 2 }
251 1
252 1 if ((SCON1 & 0x02) == 0x02) // Check if transmit flag is set
*** ERROR C202 IN LINE 252 OF F02X_UART1_INTERRUPT.C: 'SCON1': undefined identifier
253 1 {
254 2 SCON1 = (SCON1 & 0xFD);
*** ERROR C202 IN LINE 254 OF F02X_UART1_INTERRUPT.C: 'SCON1': undefined identifier
255 2 if (UART_Buffer_Size != 1) // If buffer not empty
256 2 {
257 3
258 3 // Check if a new word is being output
259 3 if ( UART_Buffer_Size == UART_Input_First )
260 3 {
261 4 UART_Output_First = 0;
262 4 }
263 3
264 3 // Store a character in the variable byte
265 3 Byte = UART_Buffer[UART_Output_First];
C51 COMPILER V7.06 F02X_UART1_INTERRUPT 04/18/2009 11:16:42 PAGE 6
266 3
267 3 if ((Byte >= 0x61) && (Byte <= 0x7A)) { // If lower case letter
268 4 Byte -= 32; }
269 3
270 3 SBUF1 = Byte;
*** ERROR C202 IN LINE 270 OF F02X_UART1_INTERRUPT.C: 'SBUF1': undefined identifier
271 3
272 3 UART_Output_First++; // Update counter
273 3 UART_Buffer_Size--; // Decrease array size
274 3 }
275 2 else
276 2 {
277 3 UART_Buffer_Size = 0; // Set the array size to 0
278 3 TX_Ready = 1; // Indicate transmission complete
279 3 }
280 2 }
281 1 }
282 //-----------------------------------------------------------------------------
283 // End Of File
284 //-----------------------------------------------------------------------------
C51 COMPILATION COMPLETE. 1 WARNING(S), 38 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -