/** * Register transmitting data via UART0 * * @param data pointer to data * @param size size of data * @return (FIFO_SIZE_T) the size of registered data to buffer */ FIFO_SIZE_T uart0_write(char *buf, FIFO_SIZE_T size){ // TB80 is used for writing flag. // if '0', which indicates not writing, interrupt must be invoked manually. if(size){ size = fifo_char_write(&fifo_tx0, buf, size); CRITICAL_UART0( if(!(SCON0 & 0x0A)){ // !TB80 && !TI0 TI0 = 1; // Manual interrupt } ); }
/** * Register trasmitting data via UART0 * * @param data pointer to data * @param size size of data * @return (FIFO_SIZE_T) the size of registered data to buffer */ FIFO_SIZE_T uart0_write(char *buf, FIFO_SIZE_T size){ // TB80は書込み中フラグとして使う // 0(書込みしていない)だったら手動割り込みをかける if(size){ size = fifo_char_write(&fifo_tx0, buf, size); CRITICAL_UART0( if(!(SCON0 & 0x0A)){ // !TB80 && !TI0 TI0 = 1; //interrupt_uart0(); // 手動で割込みをかける } ); }