0
Если рисуешь микросхему «с нуля», то смысла нет, согласен. Траблы начинаются с применением макросов. Я все рисую на Ф2, но большинство готовых макросов типа smd-микросхем выполнены на Ф1. А бывает и еще слой Ш2 задействован.

Под косяками я как раз имел ввиду косяки рисующего :) И описал, как эти косяки исправить. Да, тру-вей нарисовать все с нуля. А можно взять готовый компонент и перенести все (кроме Ш1) на нужный слой. Ну или не переносить, а печатать сразу все слои (опять-таки, кроме Ш1) на одной стороне.
0
это никак не связано с руками

согласен)

одинаково хорошо это делать обеими


не слишком хорошая идея. Одну руку проще натренировать и… в общем, просто оставлю это здесь

www.youtube.com/watch?v=3DDhYp9tM8I
0
Ну до идеала тут канеш еще поле непаханное) Ну вот, к примеру, законченный вид — это когда на диодах абажурчики, на каркасе елки — обшивка, текстолит в кишками — в корпусе, а кнопки облицованы. Хотя тут больше вопрос, какая ставилась задача — новогоднее настроение ИМХО создает =)

P.S. Ну и по программной части — в посте от Gum — там вроде как ШИМ есть, лампочки перемигиваются плавненько, посмотри видео. А у тебя — жестко. Из-за чего выглядит более топорно.
0
за это отвечает правое полушарие
это при том, что я левша)) вот и верь после этого, что у левшей правое полушарие более развито :)
0
Премиленько получилось… и елочка такая, всамделишная :) а у меня вот пространственное мышление отсутствует напрочь, попытка представить что-то сложнее кубика вызывает лютый диссонанс…

где текстолит такой недорогой брал?)
0
0
ее не вынести как инлайновою в хедер, компилятор не сможет ее заинлайнить.
Ну может оно и к лучшему :)
0
функцию следовало сделать инлайновой
хорошая идея… кстати, вроде gcc имеет свойство при оптимизации все простые функции превращать в инлайновые автоматом.
0
переменная должна сохранять свое значение между вызовами
да, точно, ступил.
+1
Ну так-то, для себя неплохо, а вот перед выкладыванием (особенно в коллективный блог) следовало бы причесать.

С ходу не понравилось следующее:

— Что делает функция crpxSetLeds()? Нет, понятно, «устанавливает состояния светодиодов». Но нафига она нужна, если переменная crpxLedsA — глобальная? Это же не stm32, надо экономить :) Так что установку состояния можно было бы просто выполнять, присвоив переменной crpxLedsA нужное значение — напрямую, а не через функцию

— Что делает переменная crpxSt? Нигде не инициализируется, нигде не используется, да еще жрет оперативку (ну потому что глобальная). Ах да, точно — используется в switch. Только никто не дает гарантии, что начальное значение crpxSt=0. А если там мусор?

Как в том анекдоте: Буратино дали три яблока. Два он съел. Сколько яблок осталось у Буратино? Думаете одно? Ничего подобного. Никто не знает сколько у него уже было яблок до этого. Мораль — всегда обнуляйте переменные!

Да и в принципе можно сделать crpxSt локальной — целый байт в оперативке сэкономим :)