Животрепещущий вопрос джедаям разводки плат

Когда переходные дырки ставятся прямо на падах SOIC — это очень криминально? Плата двухслойная.

Товарищи! Давайте соберемся на одной из выставок в Москве! Если кто едет, или хотя бы московскими и окрестными товарищами!

инфо гуглите по запросам новая электроника 2011 и Экспоэлектроника. Да! В этом году ввиду здоровой конкурентной борьбы будет 2(!) Выставки. С кучей интересных бесплатных семинаров и возможности «потрогать» живых разработчиков ну например Атмела. Короче фан полюбому.

Вчерась решил засесть за Си:-))

нет, я вполне прозрачно понимаю сишные тексты, в свое время сваял с товарищем в порядке обучения сайт на похапэ даже с подобием админки, но по-настоящему интересно стало только сейчас, после нескольких эпичных фэйлов на асме+кривые руки:-))) Первой дозой отхватил несколько начальных главок Кернигана и Ричи, потом — несколько разделов описания avr-libc, ну и закончил установкой свежего avr-gcc и медитативным просмотром стандартных хидеров. Итог — всю ночь я прибавлял во сне ко всему подряд какие-то смещения, брал какие-то адреса, ужас вобщем.

Вообще круто, Артемиий, ты придумал про это сообщество

в процессе недельного затраха с железками и софтом прикольно отвлечь голову на 5 минут и черкнуть что-нибудь этакое, что в голову взбредет. И люди отзываются, вроде как и один сидишь в своей берлоге, а вокруг — ЛЮДИ:-)

Читать дальше

Ахтунг! Bray Terminal похоже глючит!

дружусь сейчас с памятью AT24xxx по i2c. i2c потрогал тоже первый раз в жизни, так что дебага хватило с головой(третий день вот идет):-) Наткнулся на такие грабли — когда из Брая выстреливаешь достаточно длинный кусок байт(больше 20ти например) или запуливаешь через него из файла — в половине случаев куда-то кушается начальный кусок посылки, причем не байт-два, а добрая половина. Эта хня убила у меня наверное часа полтора лишнего дебага. Подключился через легальный COMPort Toolkit — все вроде бы ОК. Юзаю Брай всю сознательную электронную жизнь, но более ранние проекты не требовали такого объема трафика, несколько байт туда-сюда и все. И ведь вполне возможно, что из-за его глюков я так и недораскурил SD CARD на асме:-) Если кто-то может подтвердить инфу о небезгрешности Брая — дайте знать, буду искать терминалку получше, ибо КомПортТулкитом пользоваться в качестве терминала мерзковато.

Как я обошелся с верхними регистрами

Не знаю насколько пригодится эта придумка, но мне показалось удобным:

Мы имеем 10 регистров, от R16 до R25, которые «лучше чем остальные», ибо в них можно пихать
константы. То есть их удобно использовать как промежуточные при вычислениях. А чтобы не сохраняться в стеке при вызове прерываний, можно отдать 4 регистра на откуп обработчикам прерываний — то есть просто условиться для себя, что вот эти 4 регистра юзаем ТОЛЬКО в прерываниях.

Вот так:

.def TMPI0 = R16;
.def TMPI1 = R17
.def TMPI2 = R18
.def TMPI3 = R19

Остальные 6 я поделил так

Вот так:

.def TMP0 = R20; TMP0-TMP3 — для всяких 8-битных вычислений
.def TMP1 = R21;
.def TMP2 = R22; TMP_LOL — TMP_HOH — для 16 и 32 битных,
.def TMP3 = R23;
.def TMP_LOL = R22;
.def TMP_HOL = R23;
.def TMP_LOH = R24;
.def TMP_HOH = R25;
.def NULL = R5; ну и нолик вечный, инициализируем нулем в начале, и более
на запись не трогаем.

Вряд ли я открыл Америку, скорее изобрел очередной велик, но определенный порядок в голове и в коде появился. А то все эти LDI R16, CPI R21, R22 — очень тяжелочитабельны.

Здравствуйте, товарищи и в частности Предводитель!:-))

Интересно, а опубликованные на самом сайте статьи будут учитываться в рейтинге и при раздаче слонов?:-)) И самое главное, не будет ли здесь много копипасты? В данный момент у меня дедлайн по первому сирьозному заказу, в процессе которого пришлось усиленно раскуривать SD Card(в итоге на определенном этапе уперлось во временные рамки), а также память AT24xxx, также произошло разорение на плату BIGAVR2 от микроэлектроникса, так что по случаю сдачи проекта(надо в понедельник, а то закопают) будет о чем рассказать.