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

 
 
> битовая арифметика, битовое условие
ЧипХрум
сообщение Jun 3 2008, 06:01
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 3-06-08
Пользователь №: 38 011



Програмирую на AVRStudio под atmega32 , делаю сигналку себе на авто.
Програмирую на си.
1.Испытываю затруднение по обращению к биту порта в условии.
к примеру

if ((бит порта)==1)
или
if ((бит порта)==0)

Если я правильно понимаю к порту на ввод информации лучше всего
обращаться через регистр PIN , поправте если я не прав.


2.Так же имею вопрос как обратиться правильно к биту переменной
типа unsigned char или unsigned int в том же условии
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Jun 6 2008, 04:30
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



rezident, при чём тут true/false? в plain C и слов-то таких нет;
выражение в if () проверяется именно что на неравенство нулю, в любом случае. Выражение вида a!=b имеет свой результат - ноль или не ноль соответственно.
Лично мне выражение с опущенным !=0 также представляется более естественным (для битовых операций; сравнение чисел с нулем лучше читается в явном виде). И уж конечно, такой стиль ближе к ассемблерному - в ассемблерном коде ветвление обычно ставится сразу же после наложения битовой маски, без лишних сравнений.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 6 2008, 05:03
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vet @ Jun 6 2008, 06:30) *
Лично мне выражение с опущенным !=0 также представляется более естественным..

Более того оно так и есть на самом деле smile.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ЧипХрум   битовая арифметика   Jun 3 2008, 06:01
- - MrYuran   Цитата(ЧипХрум @ Jun 3 2008, 10:01) Если ...   Jun 3 2008, 06:14
- - Палыч   Если транслятор WinAVR - воспользуйтесь макросами ...   Jun 3 2008, 06:15
- - bloodden   if( (PINB&BIT5) != 0) делаем, если бит уст...   Jun 3 2008, 06:49
- - ЧипХрум   Спасибо за разьяснение !!!   Jun 3 2008, 07:46
- - ЧипХрум   Спасибо за разьяснение !!!   Jun 3 2008, 07:46
- - ЧипХрум   Появилась траблемма , помогайте я не справляюсь ...   Jun 4 2008, 10:36
|- - vitko   Цитата(ЧипХрум @ Jun 4 2008, 13:36) Появи...   Jun 4 2008, 11:43
- - rezident   При использовании в условиях битовых операций с на...   Jun 4 2008, 12:02
- - Lepeksiy   В таких ситуациях проще писать без сравнения, в ст...   Jun 5 2008, 10:22
|- - rezident   Цитата(Lepeksiy @ Jun 5 2008, 16:22) В та...   Jun 5 2008, 10:25
- - bloodden   Какой МК? Если мега, то смотрите на порту Ц jitag ...   Jun 5 2008, 10:38
|- - Stanislav_S   Для наглядности можно так: #define MASK 0x01 if(PI...   Jun 5 2008, 12:02
|- - zltigo   Цитата(Stanislav_S @ Jun 5 2008, 14:02) Д...   Jun 6 2008, 05:00
|- - Stanislav_S   Цитата(zltigo @ Jun 6 2008, 10:00) Можете...   Jun 6 2008, 15:33
- - Lepeksiy   Цитата(rezident)Отнюдь. Явное сравнение гораздо на...   Jun 5 2008, 12:25
|- - rezident   Цитата(Lepeksiy @ Jun 5 2008, 18:25) Мне ...   Jun 5 2008, 12:39
- - Lepeksiy   ЦитатаПри проверке условия на уровне ассемблерных ...   Jun 5 2008, 14:27
|- - rezident   Цитата(Lepeksiy @ Jun 5 2008, 20:27) Како...   Jun 6 2008, 01:29
- - Tiny   Я не программист, и до сих пор я считал, что на Си...   Jun 6 2008, 05:00
|- - zltigo   Цитата(Tiny @ Jun 6 2008, 07:00) Разве в ...   Jun 6 2008, 05:16
- - rv3dll(lex)   Цитата(ЧипХрум @ Jun 3 2008, 10:01) Прогр...   Jun 6 2008, 05:05
- - rezident   Ладно. Вижу что бесполезно убеждать. Обсуждаемый в...   Jun 6 2008, 10:25
- - GetSmart   Потом выяснится, что культурные люди кушают только...   Jun 6 2008, 11:39
- - rv3dll(lex)   есть надо руками - для этого они и нужны!...   Jun 6 2008, 12:02


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 18:25
Рейтинг@Mail.ru


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