[an error occurred while processing this directive]
Помогите оптимизировать!!!
(«Телесистемы»: «Конференция «Цифровые сигнальные процессоры (DSP) и их применение»»)

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

Отправлено Вампир 25 апреля 2003 г. 18:06

typedef struct {
WORD state0:1;
WORD state1:1;
WORD state2:1;
WORD state3:1;
WORD state4:1;
WORD state5:1;
WORD state6:1;
WORD state7:1;
WORD state8:1;
WORD state9:1;
WORD state10:1;
WORD state11:1;
WORD state12:1;
WORD state13:1;
WORD state14:1;
WORD state15:1;
} state_t;


state_t new_state, last_state

...


if(changed = new_state ^ last_state)
{
mask = 1;
for(i = 0; i < 14; i++)
{
if(changed & mask)
{
pPnt = &Array.a[i];

...

}
mask <<= 1;
}
}

При изменении состояния взводятся соответствующие этим изменениям биты. Но если происходит изменение только одного бита я
все равно вынужден просматривать все 14(что не очень хорошо). Хотелось бы сделать так, чтобы например после хора я вижу что
изминилось два бита(причем известно каких, например 1 и 5 ), и я организую цикл до 2-х(по количеству изменений) и в нём присваиваю адрес
массива (1 и 5 соответственно). Не могу понять как это сделать, помогите!

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


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

E-mail: info@telesys.ru