X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2Fserial.c;h=58ddba159575d88d311f239dfaccb697eb474483;hb=a8a7fc8a514bc79114c6d76d6a6aeb885387478c;hp=4508282e9bba0246eafd0a67642a2391c05c9ccc;hpb=b09af35f2f1cde7649d3ac4a6f5d2af6d97895a0;p=fw%2Fsdcc diff --git a/device/lib/serial.c b/device/lib/serial.c index 4508282e..58ddba15 100644 --- a/device/lib/serial.c +++ b/device/lib/serial.c @@ -8,17 +8,18 @@ //Last modified 6 Apr 97 //---------------------------------------------------------------------------- -#include "reg51.h"//This module contains definition of I8051 registers +//This module contains definition of I8051 registers +#include "8052.h" -static unsigned char xdata stx_index_in, srx_index_in, stx_index_out, srx_index_out; -static unsigned char xdata stx_buffer[0x100]; -static unsigned char xdata srx_buffer[0x100]; +static unsigned char __xdata stx_index_in, srx_index_in, stx_index_out, srx_index_out; +static unsigned char __xdata stx_buffer[0x100]; +static unsigned char __xdata srx_buffer[0x100]; -static bit work_flag_byte_arrived; -static bit work_flag_buffer_transfered; -static bit tx_serial_buffer_empty; -static bit rx_serial_buffer_empty; +static __bit work_flag_byte_arrived; +static __bit work_flag_buffer_transfered; +static __bit tx_serial_buffer_empty; +static __bit rx_serial_buffer_empty; void serial_init(void) @@ -40,9 +41,16 @@ void serial_init(void) ES=1; } -void serial_interrupt_handler(void) interrupt 4 using 1 +void serial_interrupt_handler(void) __interrupt 4 __using 1 { ES=0; + if ( RI ) + { + RI = 0; + srx_buffer[srx_index_in++]=SBUF; + work_flag_byte_arrived = 1; + rx_serial_buffer_empty = 0; + } if ( TI ) { TI = 0; @@ -53,13 +61,6 @@ void serial_interrupt_handler(void) interrupt 4 using 1 } else SBUF = stx_buffer[stx_index_out++]; } - if ( RI ) - { - RI = 0; - srx_buffer[srx_index_in++]=SBUF; - work_flag_byte_arrived = 1; - rx_serial_buffer_empty = 0; - } ES=1; }