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

 
 
 
Reply to this topicStart new topic
> 0b0000 ? IAR, вьехать не могу
pfg
сообщение Apr 10 2007, 09:37
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 8-02-07
Пользователь №: 25 175



help.gif

не могу вьехать как записать число в двоичном коде в ИАРе ??

P6OUT=0b00000001;
P6OUT=00000001b;
P6OUT=b'00000001';

на все ругается
больше вариантов голову не пришло
хелпы перерыл

поможите люди добрые !!

IAR Assembler for MSP430 V3.42A/W32 (3.42.1.9)
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Apr 10 2007, 09:39
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



никак. помоему тут ктото приводил готовые макросы, переводящие из 2 в 16. Если сильно надо поищите.
Go to the top of the page
 
+Quote Post
rumit2000
сообщение Apr 10 2007, 09:42
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228



Цитата(pfg @ Apr 10 2007, 10:37) *
help.gif

не могу вьехать как записать число в двоичном коде в ИАРе ??

P6OUT=0b00000001;
P6OUT=00000001b;
P6OUT=b'00000001';

на все ругается
больше вариантов голову не пришло
хелпы перерыл

поможите люди добрые !!

IAR Assembler for MSP430 V3.42A/W32 (3.42.1.9)


а нет варианта, что бинарная запись не поддерживается ? wink.gif
пишите так P6OUT=BIT0+ BIT1 и т.д.


--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
Go to the top of the page
 
+Quote Post
VAI
сообщение Apr 10 2007, 10:21
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



так
http://caxapa.ru/84849.html?hilite=BINARY(
http://electronix.ru/forum/index.php?showt...4&hl=BINARY

===================
исправлено:
Всё это для С. Слово Assembler попало мне между глаз и сбил с понтолыку текст вида P6OUT=.....

А Сергей Борщ ниже дает очень правильный совет.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2007, 10:50
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(pfg @ Apr 10 2007, 08:37) *
P6OUT=b'00000001';
IAR Assembler for MSP430 V3.42A/W32 (3.42.1.9)
Ассемблер вообще записей вида P6OUT=... не понимает. А если речь идет о С, то ответьте на один простой вопрос: вам действительно необходима двоичная запись? Согласитесь, запись вида P6OUT = (1<<7) | (0<<6) | (1<<5)... или P6OUT = (1<<LED) | (0<<RELAY) | (1<<KEY)... читается гораздо легче чем двоичная константа, и ошибку допустить в ней сложнее. Что же касается других SFR (не портов), там наглядность еще выше. Сравните: CACTL1 |= (CAIFG | CAIE), сразу видно - разрешить прерывания и выставить флаг и CACTL1 |= 3;
Единственное место, где двоичные константы наглядны - это программирование монохромных знакогенераторов, но ведь это не ваш случай?.

Поэтому не ломайте себе голову, а приучайтесь сразу писать красиво - сэкономите массу времени на отладке и на понимании своей же программы, когда вернетесь к ней через несколько месяцев.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
pfg
сообщение Apr 16 2007, 13:43
Сообщение #6





Группа: Участник
Сообщений: 5
Регистрация: 8-02-07
Пользователь №: 25 175



Цитата(Сергей Борщ @ Apr 10 2007, 10:50) *
Ассемблер вообще записей вида P6OUT=... не понимает. А если речь идет о С, то ответьте на один простой вопрос: вам действительно необходима двоичная запись? Согласитесь, запись вида P6OUT = (1<<7) | (0<<6) | (1<<5)... или P6OUT = (1<<LED) | (0<<RELAY) | (1<<KEY)... читается гораздо легче чем двоичная константа, и ошибку допустить в ней сложнее. Что же касается других SFR (не портов), там наглядность еще выше. Сравните: CACTL1 |= (CAIFG | CAIE), сразу видно - разрешить прерывания и выставить флаг и CACTL1 |= 3;
Единственное место, где двоичные константы наглядны - это программирование монохромных знакогенераторов, но ведь это не ваш случай?.

Поэтому не ломайте себе голову, а приучайтесь сразу писать красиво - сэкономите массу времени на отладке и на понимании своей же программы, когда вернетесь к ней через несколько месяцев.


Хм, понятно, обошел сие дело через дефиницию примерно так как и было подсказано

Удивило именно отсутвие формата записи...
Go to the top of the page
 
+Quote Post
Илья Литвиненко
сообщение Apr 16 2007, 14:25
Сообщение #7





Группа: Новичок
Сообщений: 9
Регистрация: 1-08-06
Пользователь №: 19 241



Цитата(pfg @ Apr 16 2007, 14:43) *
Хм, понятно, обошел сие дело через дефиницию примерно так как и было подсказано

Удивило именно отсутствие формата записи...


Это не беда IAR, а тем более MSP. Просто стандарт С, а с ним и С99 не поддерживает двоичные числа.

Если бы ты читал книги по С хотя бы до 30 страницы, то запомнил бы, какие типы данных он поддерживает.

А пользоваться в С действительно удобно через имена Переферийных регистров и Битовые имена, через дефайны не советую, проект вырастит в объеме, будешь сбиваться.

Пример: Запрещаем прерывания переферийному модулю:

IE1 |= OFIE; // Если нужно больше битов "выставить", то собираем | или +

Разрешаем

IE1 &= ~OFIE;

Надо потушить больше битов, легко: SCFI0 &= ~(FLLD1 + FLLD2); // Тут пригодились скобочки

Все имена периферийных регистров (смотри соответствующий .h файл) совпадают с их обозначением в документации (либо очень близки)

Дерзай!
Go to the top of the page
 
+Quote Post
Yellow Tiger
сообщение Apr 16 2007, 16:27
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 12-04-07
Пользователь №: 26 985



Цитата(Сергей Борщ @ Apr 10 2007, 11:50) *
... читается гораздо легче чем двоичная константа, и ошибку допустить в ней сложнее. ...

+1
А кроме того, многие константы - разные для разных версий процов, и тогда "говорящая" подстановка особенно выручает: заменил инклуд и - вперед.

Сообщение отредактировал Yellow Tiger - Apr 16 2007, 16:28
Go to the top of the page
 
+Quote Post

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

 


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


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