#include #include #include #include /*! \brief Schreiben von Zeichen "byte" in FIFO "fifo" */ void fifo_write(FIFO* fifo,uint8_t byte) { wait_async_set(&fifo->wtimeout,fifo->timeout); do { { ATOMIC if (fifo_free(fifo)>0) { fifo->pBuffer[fifo->pWrite++] = byte; if (fifo->pWrite == fifo->size) fifo->pWrite = 0; return; }; if (fifo->irq_wr) return; } yield(); } while (fifo->blocking && ((fifo->timeout == -1) || !wait_async_test(&fifo->wtimeout))); };