Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 0b0000 ? IAR
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
pfg
help.gif

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

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

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

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

IAR Assembler for MSP430 V3.42A/W32 (3.42.1.9)
jorikdima
никак. помоему тут ктото приводил готовые макросы, переводящие из 2 в 16. Если сильно надо поищите.
rumit2000
Цитата(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 и т.д.
VAI
так
http://caxapa.ru/84849.html?hilite=BINARY(
http://electronix.ru/forum/index.php?showt...4&hl=BINARY

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

А Сергей Борщ ниже дает очень правильный совет.
Сергей Борщ
Цитата(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;
Единственное место, где двоичные константы наглядны - это программирование монохромных знакогенераторов, но ведь это не ваш случай?.

Поэтому не ломайте себе голову, а приучайтесь сразу писать красиво - сэкономите массу времени на отладке и на понимании своей же программы, когда вернетесь к ней через несколько месяцев.
pfg
Цитата(Сергей Борщ @ 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;
Единственное место, где двоичные константы наглядны - это программирование монохромных знакогенераторов, но ведь это не ваш случай?.

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


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

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

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


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

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

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

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

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

Разрешаем

IE1 &= ~OFIE;

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

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

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

+1
А кроме того, многие константы - разные для разных версий процов, и тогда "говорящая" подстановка особенно выручает: заменил инклуд и - вперед.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.