ARM9教程DSP教程FPGA教程CPLD教程12A软硬件设计0229
int retval;
if ( buffer->head != buffer->tail ) {
*buf = buffer->buffer[buffer->tail++]; if ( buffer->tail == buffer->buffer_size ) {
buffer->tail = 0; }
retval = 1; } else {
retval = 0; }
return retval; }
void srl0_send_byte( unsigned int base, unsigned char val, srl0_transmit_buffer_t *buffer ) {
unsigned short next; next = buffer->head + 1;
if ( next == buffer->buffer_size ) next = 0; while ( next == buffer->tail ) __asm( "nop" ); buffer->buffer[buffer->head] = val; if ( buffer->busy ) {
buffer->head = next;