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

 
 
 
Closed TopicStart new topic
> Тупит компилятор EAVR 4.3?
Beginning
сообщение Dec 30 2007, 17:39
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Не могу понять, почему в выражении: PORTC_Bit0=(z&(1<<4)); компилятор генерирует ассемблерный код, где биту всегда присваивается 0. Скачайте проект и посмотрите в симуляторе (отладчике), что за код? Компилятор тупит???

Сообщение отредактировал Beginning - Dec 30 2007, 17:40
Прикрепленные файлы
Прикрепленный файл  electronix.rar ( 47.21 килобайт ) Кол-во скачиваний: 22
 


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 30 2007, 18:47
Сообщение #2


Гуру
******

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



Цитата(Beginning @ Dec 30 2007, 19:39) *
Компилятор тупит???

Нет, тупит тот, кто считает, что (100 & 8 ) не равно 0.
Сделайте z глобальной и посмотрите на результат.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 30 2007, 19:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Тупит тот, кому лень посмотреть опцию NONE в настройках оптимизации компилятора. Выкладываю более понятный проект.
Прикрепленные файлы
Прикрепленный файл  electronix.rar ( 48.17 килобайт ) Кол-во скачиваний: 23
 


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 30 2007, 20:10
Сообщение #4


Гуру
******

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



Цитата(Beginning @ Dec 30 2007, 21:22) *
Тупит тот, кому лень посмотреть опцию NONE в настройках оптимизации компилятора...

Вы не доотцениваете мое безразличие - я вообще не собираюсь открывать сей "проект" и тем более рассматривать галочки. А Вам теперь подумать, как Вы это собираетесь присвоить биту, напрмер, 0x10, 0x20,.... 0x80... С 0x00 и 0x01, естественно проблем нет.

P.S.
К делу не относится. Совет - никогда не городить безумные конструкции и не не использовать IAR-овские уродские _Bit.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 30 2007, 20:36
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата
Вы не доотцениваете мое безразличие - я вообще не собираюсь открывать сей "проект" и тем более рассматривать галочки.

Это не просто галочка, она запрещает компилятору всяческое вольнество, и заставляет компилировать, так как написано (но впрочем, это вы прекрасно знаете). А если бы вы всё же открыли проект (хотя как вы узнали некоторые его подробности? телепатия..!), то увидели, что биту присваивается не
Цитата
0x10, 0x20,.... 0x80

а конструкция (z&(1<<x)) которая может принять 2 значения TRUE/FALSE.
Цитата
IAR-овские уродские _Bit.

Полностью согласен. Но чем заменить, что бы конструкция была не сложнее типа PORTA.3

Кажется, догадался, почему компилятор себя так ведёт. Переменная типа _Bit, как ни странно, является char, но длиной в 1 бит. И все законы на эту переменную распространяются как на char. Может в этом собака зарыта?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 30 2007, 20:39
Сообщение #6


Гуру
******

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



Цитата(Beginning @ Dec 30 2007, 22:36) *
а конструкция (z&(1<<x)) которая может принять 2 значения TRUE/FALSE.

Разумеется, сия конструкция НЕ принимает значения TRUE/FALSE. Матчасть, однако надо знать.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 30 2007, 21:03
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Для бита принимает. И еслибы это был бит, то конструкция работала так как надо. Ядумаю вы не будете саорить что например конструкция if(123) и if(0) компилятором воспринимается однозначно. Так чем вы заменяете _Bit


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 30 2007, 21:24
Сообщение #8


Гуру
******

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



Цитата(Beginning @ Dec 30 2007, 23:03) *
Для бита принимает.

Не морочте голову ни себе не другим.
Цитата
Так чем вы заменяете _Bit

Естественно явными сишными портируемыми конструкциями c | & ^ и <<.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Beginning
сообщение Dec 30 2007, 21:46
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Цитата
Не морочте голову ни себе не другим.

И чем же я так вам голову заморочил?
Цитата
Естественно явными сишными портируемыми конструкциями c | & ^ и <<.

Иногда бывает удобнее пользоватся чем то другим.
Тема закрыта. sad.gif


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 30 2007, 21:54
Сообщение #10


Гуру
******

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



Цитата(Beginning @ Dec 30 2007, 23:46) *
И чем же я так вам голову заморочил?

Мне? Мне ничем - и не такую писанину видал.


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

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

 


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


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