Комментарии 109
Спасибо за статью! С экселем крутое решение. Когда я ковырялся с "Волшебным чемоданом", то использовал программу "Segment Code Generator". Там достаточно в широких пределах можно настроить декодировщик, раз я даже для такого старья смог подобрать сегменты.
Честно признаюсь, работу с экселем в таком ключе в свое время перенял у одного бразильца, для меня такой вариант применения стал полной неожиданностью. В экселе очень гибко получается. Сразу имеем готовую строку для кода на Си. Можно не только под семисегментный себе сделать шпаргалку, но и под растровый дисплей с любой конфигурацией развертки.
Да, я эксель тоже использую для программирования и формирования готового кода. Вполне себе рабочий вариант.
Как и прежде отличная статья. А я немного вкину эстетики и визуала от автора Posy.
Свойство segmCode лучше бы сделать static. Сэкономит память если понадобится пара экземпляров класса.
следуя «Arduino way», напишем простой класс для управления семисегментной индикацией
Ардуино-вэй — это нагуглить и надергать всяких либ, написаных непойми кем, в код накопипастить куски из примеров и потом удивляться — почему ничего не работает ))
Мне понятен Ваш сарказм. К сожалению, часто происходит именно так, как Вы и написали. Своими статьями я хотел бы как-то переломить это. Сама по себе платформа ардуино весьма неплохая, но вот именно такой подход необдуманного копипаста и привел к тому, что ее многие недолюбливают.
Да, это универсально, от контроллера не зависит. Просто таких — большинство
На счет "платформа ардуино весьма неплохая" — я бы поспорил...
Прилепил к ардуинке датчик уровня CO2, не абы какой — шведский от Senseair, прилепил простенький олед-экранчик на одну строчку. Все работает — уровень углекислоты показывается. Потом прилепил бошевский датчик температуры и экранчик — снова все ок
Попробовал загрузить гладкий шрифт покрасивее — памяти не хватило
А потом подключил оба датчика с экраном — и тут понеслось…
Питания хватает только от включенного компа, от банки или выключенного компа — не заводится. Датчик, которому должно хватать 3 вольта — завелся только тогда, когда я переключил его в 5 вольт. И показания датчиков — странные, всякая дичь, думаю, из-за косяков питания. Когда пробовал подать 5 вольт прямо на пины, а не от юсб — тоже ничего не заработало
Спрашиваю знакомых спецов по электронике и микроконтроллерам, говорят: "Все так и есть"
Воткнул все это дело в есп32 — ноль вопросов, ноль проблем.
Переписать на си, не?
Ну это уже не Arduino-way получается)))
Как это решит проблему с питанием?
У меня датчики не завелись, хорошие датчики — надо заметить, не нонеймовая "шняга на шилдах для ардуино-кит", просто потому что я их два сразу воткнул.
Если проблема с питанием, то Ардуино тут не при чем.
Есп32 этой проблемы не имеет, при точно таком же питании
Претензии к проводам, и контактам которыми вы подключаете. Причина не в плате. Ну чудес не бывает, питание берётся напрямую. Если там 3,3 В, ну значит меняйте схемотехнику подключения. Грешить на ардуино, когда творите дичь, ну странное дело.
Ой, ну да ладно, это не рокет сайнс, обычные гребёнки, обычные бредборды, обычные проводки с дюпоновскими разъёмами
Один датчик работает, второй работает — а вместе начинается треш угар и содомия. Все тоже самое на есп — "не было слышно ни крика, ни стона". Да и в нескольких разных чатах разработчики микроконтроллеров говорят в один голос — "это нормально, это ардуино"
В свое время я попал в один не совсем типовой для себя проект по промышленной автоматике. Установка была выполнена на основе контроллера ОВЕН ПЛК100. Ведущий программист специализировался на сименсе, и что есть сил материл ОВЕН. Типа у него зависает все, глючит в разных местах. Я стал разбираться. Оптимизировал количество переменных для передачи на рабочее место оператора. Переписал обмен по сети на низком уровне. Все заработало. К слову сказать, овен на codesys работает, а там библиотеки сделаны по аналогии в winapi. Оказалось, что проблема не в овене, а в том, что программист работал не в той парадигме.
Я это к чему веду. Может быть проблема не в ардуине была, а в том, что нужно было более глубоко вникать что и как устроено?
а и в нескольких разных чатах разработчики микроконтроллеров говорят в один голос — «это нормально, это ардуино»
То есть вы решили не выяснять причину, а посто списали на платформу? Если там линейный стаб, то его может просто не хватать.
Но судя по описанию, платформа тут не при чём. Просто пытаются не читая документации и не разбираясь в платформе творить дичь, и удивляются что не работает и ругают платформу. А всего-то надо было открыть документацию.
//пожимает плечами
На одной платформе какой-то непонятные и сложнодиагностируемые проблемы, на второй все заводится — стоит только воткнуть
Надо было сразу слушать советов профи и не связываться с ардуино
пожимает плечами ;)
Внутре ардуины - самый обычный микроконтроллер Atmega. Отлично документированный и более понятный чем Esp8266 :) (ESP32 не видел, так что как ну него все просто - никак не прокомментирую).
Да все они документированы. Но не все хотят ради мелкой поделки гуглить API и писать все с нуля, особенно на платформе, которая изначально выпускалась как обучающая.
Вопщем, претензий особо нет. Если пользовать ее как обучалку соединения готовых и проверенных шилдов — то проблем никаких. А хочется что-то за рамками "Набора 32 датчика для Ардеино", попытаться воткнуть что-то серьезное и начинаются проблемы.
Или ты начинаешь вьезжать в АПИ и сам писать себе интерфейс для подключаемых устройств, или… Или просто собираешь все на более предсказуемой платформе
Вдруг в какой-то момент всё перестанет работать и на ESP32 и будет работать на ардуине, переедете обратно?
Тут надо понять проблему, что было не так, а не платформу винить. Я не против, что ESP более удачная и совершенная платформа, у меня к AVR есть куча претензий. Но судя по описанию, там вины платформы нет вообще.
Я воткнул в бредборд епс вместо ардуино, назначил пины — и оно уже работает. Заборю лень и спаяю по нормальному, а не дюпонами на гребенках
Я воткнул в бредборд епс вместо ардуино, назначил пины — и оно уже работает.
И код переписали под ESP?
А что там переписывать?
Один датчик по uart, второй на i2c и на той же шине — мелкий oled
Я почему и удивился, что не городил на одном ардуино управление автоматизацией конвейера по сборке айфонов. Всего лишь подключил датчики чуть получше, чем "стандартные" dht11
Я сам не профи схемотехник, осваиваю все это "методом тыка", пробуя разные нагугленные либы, примерно как описывал в каменте, где стебался на "ардуино вэй" ))
Но в одном случае это не прокатило от слова "вообще", а в другом — даже не пискнуло
А что там переписывать?
С ардуины на Espressif SDK? Чуть менее чем все ;)
На esp тоже можно писать код в стиле ардуино.
https://arduino-esp8266.readthedocs.io/en/latest/index.html
https://github.com/espressif/arduino-esp32
Какие девборды используете там и там ?
Есть подозрение, что это проблема питания, если берёте его прямо с пинов доски.
Ардуино на Атмеге скорее всего,. Кушает она мало, к питанию не привередлива, поэтому бывает, что на девбордах китайцы стабилизируют питание чем попало, и как попало.
А вот esp32 в пике бывает прожорлива(может за 500мА скакануть при соединении по WiFi), поэтому к преобразованию питания на девбордах там обычно подходят серьезнее и с запасом.
И вот когда вы подключили все датчики, скорее всего питания не хватило им, или помехи на линию питания. Попробуйте конденсаторов на линию питания поставить как можно ближе к питанию самих датчиков. Либо керамику 0.1мФ, от высокочастотных помех, до 220мФ для компенсации пикового потребления. ?
Универсальность - это всегда зло! Конечно же решить проблемы совместимости на 100% очень сложно. К тому же Arduino проектировалась еще когда TTL3,3V была не на столько распространена. И разработчики это веяние не уловили. Еще 20 лет назад я часто испытывал такую боль, когда попадались микросхемы с безальтернативным 3,3В питанием. А сейчас уже наоборот получается.
Еще 20 лет назад я часто испытывал такую боль, когда попадались микросхемы с безальтернативным 3,3В питанием. А сейчас уже наоборот получается.
Ну, как сказать.
Например, арудинка жрет от 4 до 12 вольт и не подавится, даже если случайно 19 завести. А есп уже от обычного 18650 может поплохеть, ибо там 3,7, а не 3,3. И найти преобразователь на 5 воль — плевое дело, на любом условном озоне их дофига. А вот с 5 на 3 — уже поискать надо и заказать из Китая, скорее всего, а не "завтра с озона"
Я немного не о том. Сейчас можно целиком устройство сделать с единым питанием на 3,3В. Раньше это вызывало проблемы. Не все микросхемы можно было найти на 3,3. А некоторые были уже только на 3,3. Ещё и уровни надо было согласовывать.
Преобразователь - в смысле стабилизатор? Да их как грязи, на каждом углу :)
Мне надо чтобы из 5 вольт от платы зарядки 18650, выходило 3.3 вольта на есп. Я ненастоящий электронщик, потому хочу одну простую платку, где уже все напаяно, с двумя удобными входами и для выходами
Наверное я искать такое тоже не умею, потому что ближе али не нашел: https://www.aliexpress.com/item/32756017955.html
Любая плата с питанием от USB - там есть и микроконтроллер, и LDO на 3.3В. Их как грязи.
https://www.aliexpress.com/item/1005003763905349.html например.
Их как грязи — на Али. В этом я не сомневаюсь
Проблема в другом. Две недели доставки из Китая — это не два месяца, как все боялись, но и не "завтра в постамате", чего мне бы хотелось. Я пытался в Мск найти...
В default city нельзя купить модуль nodemcu?
Я уже сказал, что мне надо было — dc/dc с 5 в до 3,3. Других функций мне от платы не надо. Если покажете, где такая есть в Мск — скажу спасибо. Даже 500 рублей был готов был бы отдать, если привезли бы за пару дней, а не недель
К слову — в ЧиД заказывал БП для Малинки — доставка за 3 недели, узнал об этом после оплаты. Отказался от заказа и вернул деньги из магазина, потому что нашел на Авито слегка б/у.
Вышел даже небольшой оверкилл, ибо БП приехал реечный на 60 ватт, вместо 25 и размером в 10 раз больше малинки, но зато за два дня и всего за 1к ))
Я предположил, что на самом деле вам нужно запитать ESP от 5В ;) Простой способ - взять готовую плату с нужным стабилизатором.
Самоцитата
Мне надо чтобы из 5 вольт от платы зарядки 18650, выходило 3.3 вольта на есп
Но считаю, что если надо повторять сказанное час назад — то ...
А, ну если Вам две маленькие детальки нужны именно на отдельной плате, то вот - https://www.chipdip.ru/product0/8016244723 :)
Если без платы, то раз в 10-30 дешевле.
Большой спасиб :)
Платка правильная, но с Али такая приехала на неделю быстрее, чем из ЧиД
Сроки доставки на сайте — просто от балды. Проверял...
Попробовал загрузить гладкий шрифт покрасивее — памяти не хватило
Воткнул все это дело в есп32 — ноль вопросов, ноль проблем.
В esp памяти значительно больше чем в atmega ;)
А с питанием - вы даташиты смотрели? Что за LDO стоят в ардуинке, должны ли они вытягивать ваши датчики по 3.3В? Не нужны ли преобразователи уровня для подключения 5В датчика к контроллеру с 3.3В сигналами?
Два датчика, которые питаются от 3 до 6, условно. Потребление децльное
Короче — снова ардуино отправляется в пыльный угол дальнего ящика )
Если требуется высокая скорость разработки и нет времени детально разбираться, почему бы конечно и не выбрать другую платформу, где сразу все завелось.
Ардуино достаточно нишевая штука. Она изначально для обучения делалась. Причем по всей видимости не совсем электронщиками делалась. От нее всего можно ожидать. Но даташиты читать все таки стоит.
Скажите, а как называется кодировка сегментов, когда положение единицы может быть как слева, так и справа? Какой для этого есть термин? Видел часто такое на светофорах, пример https://www.youtube.com/watch?v=v7IGNy8iL0I&t=52s
Это кто как придумает. Тут какого-то единого стандарта нет. Символы ограничены только расположением сегментов.
На светофорах бывает единицу делают в сегментах E и F, чтоб с дистанции она не сливалась с цифрой с права от неё. Диаметр круга ограничен, расстояние между цифрами сильно не увеличить. Вот и делают так.
Моя память иногда работает как облако тэгов
Сквозь него пробежало несколько солдат, когда он посмотрел поверх костлявого плеча Загрязнения.
-- ЧТО ЭТО ЗА СВЕТЯЩИЕСЯ ШТУКИ?
Таким тоном говорят, когда точно знают, что не смогут понять ответ, но хотят показать, что им интересно происходящее.
-- Семисегментные индикаторы на светодиодах.
Белая рука Загрязнения любовно легла на ближайший блок реле, который сразу оплавился.
А где про динамику? Особенно про диагональную. Там то экселем вряд ли обойдешься...
Почему 74HC595 а не MAX 7219?Объясните потаенный смысл всей этой заметки. Ведь новички прочитают её и поверят, что это передовой и единственный способ управления.
"Потаенный" смысл моей статьи написан до ката. Про динамическую индикацию у меня не было цели рассказыввывать. МАХ 7219 я не считаю хорошим вариантом.
Таки объяснили бы нубам почему микросхема, специально созданная для управления этими индикаторами, хуже сдвигового регистра. А дальше уже их выбор куда идти.
Основной упор статьи все таки больше на кодирование индикаторов. К сожалению, все разом в одной статье ни кто не будет читать даже. Из моих наблюдений, если хабр ставит время в 30 минут, то уже не дочитывают материал.
МАХ 7219 на чип и дипе 900р стоит. Наверное больше объяснять ни чего и не надо.
Объяснять надо. И не путаться в показаниях. Если МАХ7219 дороже сдвигового регистра, это не значит что он хуже, как вы утверждали чуть ранее.
Поэтому первым предложением стоило бы написать так: "для управления индикаций создана специальная микросхема, нубы, но мы вырежем гланды автогеном. Поехали..."
Полагаю, это не на много бы удлиннило текст, но существенно уменьшило количество людей, впустую тративших время как на чтение, так и на разработку.
Я бы даже не обратил внимания на этот текст, если бы он не был адресован нубам, которые, как известно, зело доверчивы.
А цена ЧиД, как аргумент... Ну это ещё фол. Все мы знаем места, где этот аргумент точно не проходит.
Статья это не учебное пособие, а мнение автора по какому-то вопросу. Я делюсь своим опытом и в начале статьи вполне конкретно написано, про что она. Если у вас есть своя точка зрения, вы тоже можете ей поделиться и написать свою статью.
Я не утверждал, что что-то хуже или лучше. Прочитайте внимательно мои комментарии.
Я не профи, но есть у меня подозрение, что статья про сдвиговый регистр не потому что "так надо", а потому что это более низкий уровень — непосредственно схемотехника
То есть — это как упражнение на программирование базовой логики для тех, кому это интересно
Если подходить максимально практически, то была бы не статья, а ссылка на готовый шилд от ада фрукт и его либу на гитхабе. Но зачем оно такое?
и тут плавно подходим к вопросу управления яркостью...
Надо про управление яркостью написать? Я могу... традиционно коротенько, минут на 40 )))
а почему бы и нет, чтобы любительские часы не превращались в фонари по ночам.
А как же тогда в ночи путь до холодильника искать?!
Я то могу конечно написать. Но просто предвижу, как набежит куча комментаторов... под прошлыми статьями такие вещи встречаются, просто диву даешься)))
Не обращайте внимания на каменты )
Само написание систематизированных текстов — полезный скилл. Не за карму же вы их пишете ))
Я когда-то преподавателем работал. Много времени прошло. Иногда выговориться надо))) Вот "на автомате" пишу про базовые вещи. Особенно когда где-то по работе или в интернете встречаюсь с пробелами у людей.
https://habr.com/ru/post/722184/ посмотрите вот этот пост, особенно код в конце для управления семисегментным индикатором. Вот как после такого я могу не писать свои статьи?!!
//обобщенно
Ну ок, может я что-то и накосячил, но либы там простые. Температурный датчик просто по i2c. СО2 еще проще — через uart посылаются командные последовательности и считывается ответ. Там нет ничего такого, что может этакий затык создать, все просто как мычание
Пост про управление индикатором...
Ну, каждый с чего-то начинает. Для таких вещей не обязательно изучать ТПУ и схемотехнику, там все можно на высоком уровне достаточно просто сделать. Тем более, к примеру — на кнопке у него гасится дребезг считыванием через 100 микросекунд, нормальное решение, причем — не через delay, как у "уроках по ардуино", а по timestamp. Про фазовую модуляцию в каментах написали по делу, но может у человека как раз лаба именно по ней была, и не по частотной. Что электроники — то я в ней почти не разбираюсь, нечего сказать
Дальше какая-то лапша… Странная. Может копипаста, причем — из своего предыдущего проекта, а не SO
С ардуино есть конечно нюансы. Я тоже сталкивался, что простые на первый взгляд вещи оказываются совсем не простыми в реализации. Особенно когда нужно угадывать, как и какая периферия для библиотек используется. Когда в обращениях к периферии между библиотеками возникают коллизии.
Иногда обращаю внимание, что у прокаченных специалистов бомбит в комментариях. Лично я спокойно отношусь к тому, что не все в этом мире разбираются в электронике. И наоборот, это же хорошо, что люди пытаются что-то делать. Если ничего не делать, то ничему и не научишься. Только не нужно рубить с плеча и делать скоропостижные выводы о платформе на основе первого неудачного опыта.
Конкретно про регулятор, на который я дал ссылку. Я обратил внимание именно на способ управления семисегментным индикатором. Это сделано откровенно плохо. Но не потому, что автор хотел сделать плохо. Где-то же ему нужно учиться, как сделать лучше? Вот это и есть моя мотивация. Я пишу свои статься, чтоб помочь таким вот энтузиастам.
Я фигею, дорогая редакция! Да зачем тут какой то Excel. Ещё и с генерацией каких то кодов. Ну ППЦ!
Просто рисуй знакогенератор в тексте и всё. Причём как хочешь, в любых вариациях. Хочешь так:
// шрифт
static const uint8_t font[] PROGMEM = {
MASK_A | MASK_B | MASK_C | MASK_D | MASK_E | MASK_F , //0 a
MASK_B | MASK_C , //1 --
MASK_A | MASK_B | MASK_D | MASK_E | MASK_G, //2 f| |b
MASK_A | MASK_B | MASK_C | MASK_D | MASK_G, //3 --g
MASK_B | MASK_C | MASK_F | MASK_G, //4 e| |c
MASK_A | MASK_C | MASK_D | MASK_F | MASK_G, //5 -- .h
MASK_A | MASK_C | MASK_D | MASK_E | MASK_F | MASK_G, //6 d
MASK_A | MASK_B | MASK_C , //7
MASK_A | MASK_B | MASK_C | MASK_D | MASK_E | MASK_F | MASK_G, //8
MASK_A | MASK_B | MASK_C | MASK_D | MASK_F | MASK_G, //9
MASK_A | MASK_B | MASK_C | MASK_E | MASK_F | MASK_G, //A
MASK_B | MASK_C | MASK_E | MASK_F , //||
MASK_A | MASK_B | MASK_F | MASK_G, //o x
MASK_B | MASK_C | MASK_D | MASK_E | MASK_G, //d x
MASK_G, //- x
0, //F x
};
Хочешь так:
static const uint8_t font[] PROGMEM = {
//gfedcba
B0111111, //0 a
B0000110, //1 --
B1011011, //2 f| |b
B1001111, //3 g--
B1100110, //4 e| |c
B1101101, //5 -- .h
B1111101, //6 d
B0000111, //7
B1111111, //8
B1101111, //9
B1110111, //A
B1111100, //b
B0111001, //C
B1011110, //d
B1111001, //E
B1110011 //F
};
Я по натуре визуал, для меня важна наглядность. Могу и так делать, но только по причине наличия опыта в программировании и электронике. И поверьте, при наличии навыков работы с редакторами таблиц, приведенный мной способ получения таблицы перекодировки реализовать не сложнее, чем сразу составлять код.
Да я понимаю, наглядность и всё такое. Но тут то всё просто как божий день.) Зачем ещё какие то дополнительные телодвижения! Наглядность должна быть в самом тексте программы, а не с какими то непонятными кодами.
В том и дело, что Вы понимаете. Поэтому Вам это не нужно. Но реально есть люди, которые не понимают, но хотели бы понимать.
Считаю что даунам не место в программировании. Извините.
То есть не бывает иной точки зрения, кроме вашей? Вы считаете, если мне реально быстрее и проще сделать это в экселе, то я рукожоп? Это табличка в экселе делается не дольше пяти минут.
Почему не бывает? Конечно бывает. Но я считаю что наглядно нужно писать в самом тексте программы, а не прибегать к каким то дополнительным ухищрениям. При том что в этом (я) не вижу абсолютно никакой необходимости. Я об этом говорил выше.
Наглядность в коде? Это там, где от слова "MASK" в глазах рябит? Если бы люди так легко переваривали двоичные коды, язык С, наверное, и не изобрели.
Скажите, а если нужно картинку на растровый индикатор вывести, вы тоже её сразу в двоичном коде будете писать?
Самодокументированность кода - это конечно же хорошо. Но и сопроводительную документацию ни кто не отменял. Так же, как я ни где не видел запретов на использование дополнительных инструментов.
#define SEGMENT_A 0b00000001
#definВот например чисто С. Будет много строк, зато и достаточно наглядно, и дополнительные инструменты не нужны.e SEGMENT_B 0b00000010
//..
const uint8_t segment_data = {
/*
SEGMENT_A |
SEGMENT_B | SEGMENT_C |
SEGMENT_D |
SEGMENT_E | SEGMENT_F |
SEGMENG_G || DP
*/
SEGMENT_A |
SEGMENT_B | SEGMENT_C |
0 |
SEGMENT_E | SEGMENT_F |
SEGMENG_G || 0 // вот вам 0
/*
копируем шаблон сколько нужно раз. Сегменты, которые нужно погасить, забиваем нулями
*/
};
... и каждый такой код семисегментного индикатора в отдельный файл записывать? Я все таки надеюсь, что Ваш пример - это шутка.
Вы знаете, а на фоне Вашего примера, мой вариант с Excel не кажется каким-то извращением )))
и каждый такой код семисегментного индикатора в отдельный файл записывать?
Если это добавит наглядности (не могу представить как, правда) - почему нет ? Вам жалко файлов? ;)
А в чем проблема разбросать С код на несколько строк? Вам жалко строк? ;) Правильное форматирование кода иногда здорово помогает.
Конечно шутка. Знакогенератор кодируется 1 раз, размер у него небольшой, править его вряд ли кто-то будет. Хотя, если захочется ножки индикатора припаять к другим пинам, эта схема правится моментально. А в вашем случае нужно снова расчехлять excel и копипастить все заново. :b
В Вашем примере для изменения схемы подключения нужно будет переписывать маски в макроподстановках для переопределения сегментов. Я не думаю, что это сильно быстрее или проще, чем в табличке сделать фактически тоже самое, а потом скопипастить оттуда готовую строку в код.
Я обычно использую Excel вместо калькулятора. Давняя привычка. Кто пробовал считать коэффициент гармонических искажений врукопашную, меня должен понять))) Еще я чертилки и рисовалки всякие использую, текстовый редактор, и еще кучу всего. Или Вы не ведете сопроводительные документы к своим программам?
переписывать маски в макроподстановках для переопределения сегментов.
Не более 8 строк вида 0b000001000 (или PIN_x, или 1<<x). Очень сложно ошибиться, если закодировать понятно ;)
![](https://habrastorage.org/getpro/habr/upload_files/89e/a62/554/89ea62554d3339afe733e94e07225c2e.png)
Просто вписать нужный номер разряда, в котором должно быть закодировано состояние сегмента.
.. и прошагать весь знакогенератор, все 10(16, 30 - сколько нужно) символов, и скопипастить их по одному в правильное место ;)
Зачем? Вы, видимо, не умеете пользоваться Excel. Сразу пользуешься зависимостями среди ячеек. Все это сводится к примитивному копипасту.
![](https://habrastorage.org/getpro/habr/upload_files/a1f/2ff/acb/a1f2ffacbd8389f424482a1910071003.png)
![](https://habrastorage.org/getpro/habr/upload_files/ea3/4c3/877/ea34c387757d9abf478d95666459e47c.png)
Руками прописывается таблица только для одного символа, все остальное делается копипастой. Ну и потом достаточно в одном месте поменять значения и все остальное само пересчитает. Ни какой магии, обычное программирование, только не в блокноте на Си, а в ячейках таблицы на чем-то типа бейсика.
Вы знаете, а на фоне Вашего примера, мой вариант с Excel макросами на С не кажется каким-то извращением ))) (ц) :D
Легким движением руки тоже получилась простыня, только не на С, а в excel.
Мне кажется, что в Вас говорит упрямство. В статье я привёл несколько вариантов на выбор. Можно пользоваться любым. Для кого-то важна наглядность, тому вариант с таблице. Хотите, развлекайтесь с масками.
К примеру, если на дисплее надо какие-то надписи делать, мне проще в экселе посмотреть, как это будет выглядеть, чем рисовать на бумаге или в уме фантазировать, и потом биты переносить в программу.
Можно вопрос. А окна вы тоже по координатам строите, или пользуетесь графическими конструкторами?
На растровый то, как раз и более нагляднее будет выглядеть. Прям начертание явно, типа
B00001100 // верхняя часть символа
и т.д.
Конечно. Запретов никаких нет. Но и раздувание не приветствуется. А главное, заради чего?
К чему вы привлекаете дополнительные (нехилые!) приложения! Когда они здесь совсем лишние.
При чём здесь разные инструменты для развития мышления!
Вы пишите простую программу. Вы выдаёте простой исходник. Здесь всё должно быть понятно от и до. И начертания символов в том числе. И это начертание так же просто описывается. И так же просто изменяется, при необходимости. Какая проблема всё это реализовать? И на кой тут Эхсel! К чему он здесь!
Вот и всё что я вам пытаюсь донести.
Да у каждого есть свой набор микроскопов с ручкой и велосипедов ;) Я бы ради знакогенератора для 10 символов поленился гуглить екселевские функции. Скачал бы готовую таблицу да и дело с концом.
Естественно. Кто как хочет, так и ...чит. И это сугубо дело каждого. Только, не считаю правильным всё это доносить в массы, выдавая подобное за "правильность" подхода. И восхваляя себя, типа "ах вот какой я молодец". На самом деле, всё скучно и тривиально.
Ну, раз результат достигнут - значит подход правильный ;) Смотрите на эту тему немного шире: показано, что с помощью excel можно не только таблицы перемножать, в этом автор молодец.
"Все понятно" - это при условии, что вы подобное уже много раз делали. Одно не могу понять, чего же Вас так бомбит то?! ))) Я сейчас обратил внимание, что Вы не первый раз на моих постах подрываетесь, может быть у Вас на "школьные" знания аллергия выработалась?
Старый добрый семисегментный индикатор