| Форум РадиоКот https://radiokot.ru/forum/ |
|
| CoIDE проверка бита https://radiokot.ru/forum/viewtopic.php?f=62&t=175033 |
Страница 1 из 1 |
| Автор: | lyaksandrov [ Вс янв 17, 2021 17:55:46 ] |
| Заголовок сообщения: | CoIDE проверка бита |
Всем привет, работаю в CoIDE и у меня возник вопрос. Как узнать что в 7 бите регистра IDR блока GPIOD установлен 0. Код как проверить стоит ли там 1 я знаю он выглядет так if(GPIOD->IDR&(1<<7){условие}, но не знаю как проверить на 0. Догадваюсь что можно использовать исключающее или, но сейчас нет возможности проверить это, может кто подсказать прав ли я? |
|
| Автор: | VladislavS [ Вс янв 17, 2021 18:21:21 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Не прав. |
|
| Автор: | lyaksandrov [ Вс янв 17, 2021 18:22:39 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Так и думал |
|
| Автор: | VladislavS [ Вс янв 17, 2021 18:23:43 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Подсказка. А если там НЕ 1, то что? |
|
| Автор: | lyaksandrov [ Вс янв 17, 2021 18:26:40 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Дело в том, что нужно конктретно на 0 проверить. А понимаю если там не 1 то там 0, но проверка идет имеено на 1, а не на 0. |
|
| Автор: | VladislavS [ Вс янв 17, 2021 18:29:15 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Если проверка на 1 не сработала, то что осталось? |
|
| Автор: | lyaksandrov [ Вс янв 17, 2021 18:32:03 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Остался 0 конечно, но повторюсь, что проверка идет на 1, а мне нужно именно на 0 проверку сделать. Вот такой преподаватель оказался категоричный) Добавлено after 1 minute 25 seconds: А понимаю, что это звучит глупо, но ничего поделать с этим не могу) Нужно именно проверку на 0) |
|
| Автор: | VladislavS [ Вс янв 17, 2021 18:50:04 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Я даже не знаю как ещё слово "НЕ" выделить. |
|
| Автор: | lyaksandrov [ Вс янв 17, 2021 19:14:25 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
А если так напишу будет правильно? if((GPIOD->IDR&(1«7))==0) { условие } |
|
| Автор: | Zhuk72 [ Вс янв 17, 2021 20:24:13 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Правильно. Либо, как выше VladislavS намекал, if((GPIOD->IDR & (1 « 7)) != 1) |
|
| Автор: | NStorm [ Вс янв 17, 2021 20:32:08 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
А еще есть конструкция if(!(GPIOD->IDR & (1 « 7)). А вообще вам бы, ТС базовый курс по Си почитать что-ли. Это ж самые азы. И CoIDE тут не причем. |
|
| Автор: | VladislavS [ Вс янв 17, 2021 21:15:47 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Либо, как выше VladislavS намекал, if((GPIOD->IDR & (1 « 7)) != 1) Ну это же неправильно!
|
|
| Автор: | Zhuk72 [ Пн янв 18, 2021 17:09:01 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Почему? Если бит не равен 1, значит он равен 0. Третьего не дано. Понятно, что так обычно не пишут, сравнивая с интересующим значением, но тем не менее логика же верна. |
|
| Автор: | NStorm [ Пн янв 18, 2021 17:19:48 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Zhuk72, а до знака думаете стоит бит? Подумайте еще, посмотрите на выражение в скобках. Какие оно может принимать значения? Подсказка: 0 и 1 - неправильный вариант. Подсказка 2: if(x) при каких значениях x сработает? |
|
| Автор: | Zhuk72 [ Пн янв 18, 2021 17:33:47 ] |
| Заголовок сообщения: | Re: CoIDE проверка бита |
Я уже понял, потому и вернулся, чтобы сообщить об этом Добавлено after 1 minute 42 seconds: Результат будет либо 0, либо 0х80. |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


