serial_interrupt_dre() { uint8_t start = serial_output.start; if (start == serial_output.end) serial_interrupt_dre_disable(); else { serial_write(serial_output.buf[start]); serial_output.start = (start + 1) & (SERIAL_OUTBUF - 1); } }
serial_interrupt_dre() { uint8_t start = serial_output.start; if (start == serial_output.end) serial_interrupt_dre_disable(); else { serial_write(serial_output.buf[start]); serial_output.start = (start + 1) % sizeof(serial_output.buf); } }
serial_interrupt_dre() { char *str = output.str; uint8_t c = *str; if (c == '\0') { serial_interrupt_dre_disable(); output.printing = 0; } else { serial_write(c); output.str = str + 1; } }