например так
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено тщ_тфьу 19 мая 2004 г. 10:11
В ответ на: Как попроще на С для авр буфер типа фифо организовать? отправлено пионэр авр 19 мая 2004 г. 09:45

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