[an error occurred while processing this directive] [an error occurred while processing this directive]
Дело не конкретно в функции а том что переменные не изменяются.....
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Колян 03 мая 2002 г. 18:42
В ответ на: Попробуй так (*var)++ - впрочем не совсем ясно чего тебе нужно. отправлено Александр554 03 мая 2002 г. 16:50

суть в чем- функция проверки канала, каналов N, на каждый канал 4 переменные.В функцию можно передавать номер канала и внутри по нему вычислять переменные с которыми работать но это изврат.Надо передать в функцию 4 переменные и получить их обратна измененными.Кароче альтернатива тому что я делаю выглядит так:

unsigned char rev;
unsigned char tout;
unsigned char flaga;
unsigned char flagb;

unsigned char rev0;
unsigned char tout0;
unsigned char flaga0;
unsigned char flagb0;
...............
unsigned char rev7;
unsigned char tout7;
unsigned char flaga7;
unsigned char flagb7;

char CheckCan(void)
{ //упрощенно:)
flaga++;
flagb++;
rev++ ;
tout++ ;
if (flaga==20) return(0);
return(1);
}


в майне вызываю ее так:

rev=rev0;tout=tout0,flaga=flaga0,flagb=flagb0;
if (CheckCan())ToFleshTmp=ToFleshTmp|Bit0;
rev0=rev;tout0=tout,flaga0=flaga,flagb0=flagb;
...........
rev=rev7;tout=tout7,flaga=flaga7,flagb=flagb7;
if (CheckCan())ToFleshTmp=ToFleshTmp|Bit7;
rev7=rev;tout7=tout,flaga7=flaga,flagb7=flagb;

Кароче все делаю в ручную.....

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

Ответы



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

E-mail: info@telesys.ru