@ko10ok
Как часто меняется функционал пина? Может это для экстренной смены функции использовать только, а для инициализации использовать инитмассив какого нить формата типа
PINS={
(PIN,ANALOG,OUTPUT),
(PIN,TYPE,MODE),
({PIN,PIN}, I2C) <
({PIN,PIN,PIN,PIN,PIN},ANALOG,OUTPUT), <
(PINGROUP, TYPE, [MODE]) < например такой общий формат
…}
или более удобоваримый формат какой нить ибо нету смысла писать каждый раз "инитПин".
И парсить это макросом на этапе компиляции например)
@PeterBeklemishev
Идея интересная
@dubkov
Массовое объявление пинов и массовое дерганье пинами - моя мечта! парсить это конечно адок будет…
{PIN,PIN}, I2C - не вижу смысла, пины для i2c забиндены и должны резервироваться прямо в библиотеке. Остальное неплохо
@redetection
Идея задавать чуть более высокоуровнево — правильная, пользователям проще будет.
Смысл писать каждый раз пинИнит есть. Это — всего лишь семь символов, шесть из которых тебе подставит sublime прямо сразу (а если ты выучишь хоткей на мультикурсор, то совсем халява.
Напоминаю для тех, кто забыл: раньше для этого надо какие-то разные маски по каким-то разным адресам распихать, а тут — всего пара пинИнитов ;)
@redetection
макросы сильно ограничены, там надо неплохо костылить и хакать, чтобы получить функционал. хуже, чем в баше, но лучше, чем в брайнфаке. короче для чего-нибудь не очень сложного можно макросы, для чего-нибудь сложнее — DSL или екстеншны
11.