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

 
 
2 страниц V  < 1 2  
Closed TopicStart new topic
> Какова логика работы компилятора Atmel studio
adnega
сообщение Apr 1 2018, 14:55
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Вообще, в AVR для битовых условий есть всякие sbrc|sbrs|sbic|sbis.
Как на С лучше всего помочь компилятору задействовать эти инструкции?
Go to the top of the page
 
+Quote Post
mozg12342
сообщение Apr 1 2018, 14:57
Сообщение #17





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Цитата(aiwa @ Mar 31 2018, 23:32) *
Причина не в переменной. По стандарту языка компилятор перед выполнением операции расширяет байт до целого нулями. Которые после инвертирования превращаются в "непредвиденные" единицы.

Я понял, но этот ноль должен был операцией или установиться в единицу и затем инвертироваться
Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 1 2018, 15:01
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(jcxz @ Apr 1 2018, 17:53) *
Скобки-то зачем? Приоритет операций никто не отменял.

Для однообразности. Иногда TIM_SR_CC1IIF не простая константа.
Кста, она тоже что-то типа
Код
#define    TIM_SR_CC1IIF                    (1UL)

Я не хвастаюсь, но скобочками у меня удобрено сильно.
Go to the top of the page
 
+Quote Post
mozg12342
сообщение Apr 1 2018, 15:05
Сообщение #19





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Цитата(adnega @ Apr 1 2018, 15:53) *
Это называется "или".

Упс. исправил.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 1 2018, 15:17
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(adnega @ Apr 1 2018, 18:01) *
Для однообразности. Иногда TIM_SR_CC1IIF не простая константа.

Все "непростые" должны быть записаны в виде:
#define TIM_SR_CC1IIF (...)
Если у Вас не так, то Вам следует сильно задуматься о своём стиле. laughing.gif

Цитата(adnega @ Apr 1 2018, 18:01) *
Я не хвастаюсь, но скобочками у меня удобрено сильно.

Когда надо разобраться в каком-то коде и вижу лес (да даже не лес, а чащу) типа:
if (((a)+(x)) | (((y)+((d)*(e))) << 1))
то сначала выкашиваю этот бурелом, иначе в этих скобочках теряется логика выражения.
Это как с шевелюрой - пока её не сбрить, операцию на мозге не выполнить качественно. cool.gif
Go to the top of the page
 
+Quote Post
mozg12342
сообщение Apr 1 2018, 16:20
Сообщение #21





Группа: Участник
Сообщений: 14
Регистрация: 22-02-18
Пользователь №: 101 921



Всем отзывчивым большое спасибо!!!
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th August 2025 - 04:58
Рейтинг@Mail.ru


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