Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
06.05.2006, 11:52
|
|
Прописка
Регистрация: 29.08.2005
Сообщений: 139
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Помогите разобраться с макросом
Анализирую чужую программу на Си для АВРа.
там есть такой макрос:
#define WAIT { while(tm==0); tm=0; count++; }
Вопрос :
1.если соблюдается условие (tm==0) то выполнются оба оператора или только tm=0;
2.если условие не истино - оператор count++; выполняется?
пример использования макроса:
while((bit_is_set(PIND, RC5))&&(count‹16)) WAIT;
|
|
|
|
06.05.2006, 12:05
|
|
Временная регистрация
Регистрация: 30.08.2005
Адрес: Ротовска йобласть
Сообщений: 84
Сказал спасибо: 2
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
›› #define WAIT { while(tm==0); tm=0; count++; }
while (tm ==0); - бесконечный цикл
|
|
|
|
06.05.2006, 13:09
|
|
Прописка
Регистрация: 29.08.2005
Сообщений: 139
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Сообщение от Panda_Y2k
|
›› #define WAIT { while(tm==0); tm=0; count++; }
while (tm ==0); - бесконечный цикл
|
tm - флаг прерывыния от таймера.
мне здесь непонятно count++; - является оператором входящим в цикл while?
|
|
|
|
06.05.2006, 13:18
|
|
Прописка
Регистрация: 29.08.2005
Сообщений: 139
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Спасибо. Кажется разобрался, не обратил внимание на точку с запятой после while(tm==0);. Тоесть ждет таймер, а после выполняет два оператора.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:05.
|
|