|
unsigned char wr_index;
unsigned char rd_index;
unsigned char counter;
char buffer[BUF_SIZE];
void clear_buffer(void)
{
wr_index=0;
rd_index=0;
counter=0;
}
char write_buffer(char data)
{
if(counter < BUF_SIZE)
{
counter++;
buffer[wr_index]=data;
if(++wr_index == BUF_SIZE)wr_index=0;
return 1;
}
return 0;
}
char read_buffer( char* data)
{
if(counter)
{
counter--;
*data = buffer[rd_index];
if(++rd_index == BUF_SIZE)rd_index = 0;
return 1;
}
return 0;
}
E-mail: info@telesys.ru