adnega 11 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Вообще, в AVR для битовых условий есть всякие sbrc|sbrs|sbic|sbis. Как на С лучше всего помочь компилятору задействовать эти инструкции? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Причина не в переменной. По стандарту языка компилятор перед выполнением операции расширяет байт до целого нулями. Которые после инвертирования превращаются в "непредвиденные" единицы. Я понял, но этот ноль должен был операцией или установиться в единицу и затем инвертироваться Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Скобки-то зачем? Приоритет операций никто не отменял. Для однообразности. Иногда TIM_SR_CC1IIF не простая константа. Кста, она тоже что-то типа #define TIM_SR_CC1IIF (1UL) Я не хвастаюсь, но скобочками у меня удобрено сильно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Это называется "или". Упс. исправил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 243 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Для однообразности. Иногда TIM_SR_CC1IIF не простая константа. Все "непростые" должны быть записаны в виде: #define TIM_SR_CC1IIF (...) Если у Вас не так, то Вам следует сильно задуматься о своём стиле. :laughing: Я не хвастаюсь, но скобочками у меня удобрено сильно. Когда надо разобраться в каком-то коде и вижу лес (да даже не лес, а чащу) типа: if (((a)+(x)) | (((y)+((d)*(e))) << 1)) то сначала выкашиваю этот бурелом, иначе в этих скобочках теряется логика выражения. Это как с шевелюрой - пока её не сбрить, операцию на мозге не выполнить качественно. B) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mozg12342 0 1 апреля, 2018 Опубликовано 1 апреля, 2018 · Жалоба Всем отзывчивым большое спасибо!!! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться