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

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

Отправлено ваер 05 апреля 2004 г. 10:53
В ответ на: Как сделать буферизацию при асинхронной передаче оцифрованного звука? отправлено Aw 04 апреля 2004 г. 23:39

Напимер так
typedef struct{
unsigned char ReadPos;
unsigned char WritePos;
unsigned char Counter;
char Buf[8];
}c_buf;

c_buf CBuf={0,0,0,""};

char ReadCBuf(c_buf* buffer, char *ch)
{
if(buffer->Counter == 0)return 0;
*ch = buffer->Buf[buffer->ReadPos];
buffer->Counter--;
if((++buffer->ReadPos) == 8)buffer->ReadPos=0;
return 1;
}

char WriteCBuf(c_buf* buffer, char ch)
{
if(buffer->Counter == 8)return 0;
buffer->Buf[buffer->WritePos] = ch;
buffer->Counter++;
if((++buffer->WritePos) == 8)buffer->WritePos=0;
return 1;
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru