X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_ser.c;h=69d1833014975eba3827ea916448f3f7cebe8912;hb=bae75e8a72efa0719c893df3461e191a4d011764;hp=064a7d002051f830ce336aedf6b2ef8fb2e7e8d1;hpb=c629d2f5c76ed1e47ad9fc28127dcbe9552664ed;p=fw%2Fsdcc diff --git a/device/lib/_ser.c b/device/lib/_ser.c index 064a7d00..69d18330 100644 --- a/device/lib/_ser.c +++ b/device/lib/_ser.c @@ -35,15 +35,15 @@ #define NON_BLOCKING -unsigned char xdata ser_txIndexIn; -unsigned char xdata ser_txIndexOut; -unsigned char xdata ser_rxIndexIn; -unsigned char xdata ser_rxIndexOut; +unsigned char __xdata ser_txIndexIn; +unsigned char __xdata ser_txIndexOut; +unsigned char __xdata ser_rxIndexIn; +unsigned char __xdata ser_rxIndexOut; -unsigned char xdata ser_txBuffer[0x100]; -unsigned char xdata ser_rxBuffer[0x100]; +unsigned char __xdata ser_txBuffer[0x100]; +unsigned char __xdata ser_rxBuffer[0x100]; -static bit ser_txBusy; +static __bit ser_txBusy; void ser_init(void) @@ -79,10 +79,15 @@ ser_init(void) } void -ser_interrupt_handler(void) interrupt 4 using 1 +ser_interrupt_handler(void) __interrupt 4 __using 1 { ES=0; + if (RI) { + RI = 0; + ser_rxBuffer[ser_rxIndexIn++] = SBUF; + } + if (TI) { TI = 0; if (ser_txIndexIn == ser_txIndexOut) { @@ -93,11 +98,6 @@ ser_interrupt_handler(void) interrupt 4 using 1 } } - if (RI) { - RI = 0; - ser_rxBuffer[ser_rxIndexIn++] = SBUF; - } - ES=1; }