[an error occurred while processing this directive]
Забыл length инкркментировать/декркментировать
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено F8 06 апреля 2006 г. 18:09
В ответ на: (+) отправлено <font color=gray>F8</font> 06 апреля 2006 г. 18:03


Пример: передача массива

void PutData(char *pData, int length)
{
putchar(0x0A);//Передача символа начала пакета
while(lenght != 0)
{
char tmp = *pData;
pData++;
switch(tmp)
{
case 0x0A:
case 0x0D:
case 0x0C:
putchar(0x0C);
putchar(~tmp);
break;
default:
putchar(tmp);
}
length--;
}

putchar(0x0D);//Передача символа конца пакета

}


прием:

#define ERROR 0xFFFFFFFF

int GetData(char *pData)
{
int length = 0;
while(getchar()!=0x0A);//Ждем начала передачи
for(;;)
{
char tmp = getchar();
switch(tmp)
{
case 0x0D:
//Принят конец пакета
return length;
case 0x0A:
//принят символ начала пакета, ошибка приема данных
return ERROR;
case 0x0C:
//Принят символ исключения
tmp = getchar;//Принимаем след байт.
tmp = ~tmp;
*pData = tmp;
break;

default:
*pData = tmp;
}
length++;
pData++;
}
}


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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru