return (LCDStatus);\r
}\r
\r
-#if defined(__IMAGECRAFT__)\r
-#pragma interrupt_handler usart_rx_handler:iv_USART0_RXC\r
-void usart_rx_handler(void)\r
-#else\r
-ISR(USART_RX_vect)\r
-#endif\r
-{\r
- unsigned char rx, tmphead;\r
+INLINE_FUNC_DECLARE(static void UartStoreRx (uint8_t rx));\r
+static inline void UartStoreRx (uint8_t rx) {\r
+ unsigned char tmphead;\r
\r
if (UCSRA & (1<<FE)) {\r
// framing error. Currrently, this is silently ignored\r
}\r
#endif\r
\r
- rx = UDR;\r
// Calculate next buffer position.\r
tmphead = sUartRxHead;\r
if (tmphead == UART_RX_BUFFER_SIZE-1)\r
#endif\r
}\r
\r
+#if defined(__IMAGECRAFT__)\r
+#pragma interrupt_handler usart_rx_handler:iv_USART0_RXC\r
+void usart_rx_handler(void)\r
+#else\r
+ISR(USART_RX_vect)\r
+#endif\r
+{\r
+ UartStoreRx(UDR);\r
+}\r
+\r
static unsigned char WaitRxChar (void) {\r
// waits for next RX character, then return it\r
unsigned char tail;\r