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

 
 
> Тупит компилятор 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
 
Start new topic
Ответов
Beginning
сообщение Dec 30 2007, 20:36
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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



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

 


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


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