Size: a a a

2020 June 11

h

hardegor in Embedded Group
Сиие Сууие
Ок, представь себе, ты конфигурируешь микросхему кана, каждый битик что-то значит, и допустим чтоб вывести его в стандартный для тебя режим то надо что-то типа 10010011, ты смотришь на это и смотришь в доку и все понятно, а эти спелы 0ха4 надо разбирать один хрен на биты
Ага, а потом через полгода вспоминать что за биты туда записаны? Можно конечно комменты написать, но лучше делать макросы по названиям бит и из них собираются команды.
источник

СС

Сиие Сууие in Embedded Group
hardegor
Ага, а потом через полгода вспоминать что за биты туда записаны? Можно конечно комменты написать, но лучше делать макросы по названиям бит и из них собираются команды.
8 размерная команда ну такое
источник

h

hardegor in Embedded Group
И оверхеда не будет - компилятор сам соберет из макросных констант число.
источник

h

hardegor in Embedded Group
Сиие Сууие
8 размерная команда ну такое
Не понял, какое?
источник

СС

Сиие Сууие in Embedded Group
hardegor
Не понял, какое?
Ну 8 макросов в ряд, а если 32?
источник

СС

Сиие Сууие in Embedded Group
Это слабочитабельно, особенно если это "стандартная" конфигурация
источник

СС

Сиие Сууие in Embedded Group
Вот представь себе у тебя есть норм рабочий код где ты пишешь state |= 1<<NORMAL_WORK
state |= 1<<SEND_ANSWER
источник

СС

Сиие Сууие in Embedded Group
Это норм, но блин. Есть дефаулт стейт и как по мне тупо его набирать из этих макросов и проще написать один макрос
DEFAULT_STATE 0b10011010
источник

СС

Сиие Сууие in Embedded Group
И не заниматься его сбором по битам, один хрен оно не поменяется а если захочется таки посмотреть что это то не надо эти хексы разбирать(я не могу это на лету)
источник

СС

Сиие Сууие in Embedded Group
У меня такое есть в коде, сперва я чудил с макросами сдвига, потом с хексом, потом меня задолбало и я пишу бинарем, удобно и понятно без магии
источник

h

hardegor in Embedded Group
Сиие Сууие
У меня такое есть в коде, сперва я чудил с макросами сдвига, потом с хексом, потом меня задолбало и я пишу бинарем, удобно и понятно без магии
#define NORMAL_WORK  1<<5
#define SEND_ANSWER    1<<2
а постоянную команду:
#define DEFAULT_STATE  NORMAL_WORK|SEND_ANSWER
и тогда можно так:
state |= NORMAL_WORK|SEND_ANSWER
или так:
state |= DEFAULT_STATE
источник

h

hardegor in Embedded Group
Один раз даташит раскатал на макросы и пользуешься.
источник

СС

Сиие Сууие in Embedded Group
Не знаю , может вкусовщина, может говнокод, но мне иногда тупо проще написать бинарь чем городить 10 макросов
источник

NN

Nikita Nazarenko in Embedded Group
Сиие Сууие
Не знаю , может вкусовщина, может говнокод, но мне иногда тупо проще написать бинарь чем городить 10 макросов
Это плохо когда за тобой это кто-то читает и пытается врубиться
источник

СС

Сиие Сууие in Embedded Group
Особенно когда биты сдвоены, и не один бит отвечает за состояние а несколько
источник

BV

Bulat Valeev in Embedded Group
Тут фломастеры и вкус имхо
источник

СС

Сиие Сууие in Embedded Group
Nikita Nazarenko
Это плохо когда за тобой это кто-то читает и пытается врубиться
Согласен, пишу это только для конкретных однозначных команд, типа дефаулт или инит мод, там блин надо смотреть не внутрь а в название, инит это инит, к нему нельзя ничего добавить как и к дефаулту
источник

СК

Сергей Колотовченко... in Embedded Group
Голые битовые числа зло. Сам через полгода-год забудешь что к чему, поддерживать нереально. Лучше вместо битовых сдвигов делать структуру с битовыми полями
источник

h

hardegor in Embedded Group
Сиие Сууие
Не знаю , может вкусовщина, может говнокод, но мне иногда тупо проще написать бинарь чем городить 10 макросов
Это понятно, сам таким по-быстрому пользуюсь :) Но, как уже писал, что через полгода вспоминать что там за хрень я зашифровал - напрягает....
источник

u

uis in Embedded Group
Сергей Колотовченко
Голые битовые числа зло. Сам через полгода-год забудешь что к чему, поддерживать нереально. Лучше вместо битовых сдвигов делать структуру с битовыми полями
struct st{
bool b:1;
};
источник