реклама на сайте
подробности

 
 
> Компилятор ICC AVR, Помогите разобраться
lolful
сообщение Sep 16 2008, 05:56
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



Логка программы. В определенном месте кода ждать пока функция не вернет "1".
Пишу:
Код
while(!URXFind_("OK", 2));
И что же происходит? Функция возвращает "1" в тот момент, когда не должна. Сейчас поясню.
Далее исправляю эту сточку на:
Код
while(!(temp = URXFind_("OK", 2)));
...и все начинает работать так, как надо. Когда надо функция возвращает "1", когда надо - "0". Что это за подводный камень? Ума не приложу как такое имеет место быть...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
lolful
сообщение Sep 16 2008, 07:32
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732



temp - это unsigned char. Функция возвращает именно число 0 или 1, а не их ASCII-код.
Но проблема то в том, что в первом случае чушь происходит, а во втором - все отлично работает.

PS Ой-ой! Что это тут написано! temp = URXFind_("OK", 2, &temp) - temp как параметр и как возвращаемое значение. Так не должно быть, хотя на работу это не влияет.

Ладно, буду сам разбираться. Придется вспоминать ассемблер...

Сообщение отредактировал lolful - Sep 16 2008, 07:33
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 01:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016