Моя очередь мигать диодиками :)

25 числа пришла плата, вот потихоньку осваиваю. Заодно осваиваю Си. На нем еще писать не приходилось.
Получилось вот как-то так:

реализовал работу с:
— кнопками
— прерываниями

Больше всего пришлось повозиться с кнопками, и резистором — из-за дребезга. С кнопками сделал обычной задержкой. (Кстати при компилировании эта _delay_ms превращается в какую-то жесть на 12 строк). С резистором изобрел велосипед, но, несмотря на квадратные колеса и отсутствие руля, ездить можно :)
С кнопками, кстати, наступил на грабли, о которые бился часа 3, не понимаю почему конструкция вида

if (PIND3)==0
{
//жмякнули кнопку А
}

Не пашет. Разобрался, но было весело.
Еще пару часов потерял, разбираясь почему у меня АЦП при повороте резистора на, дай бог 1/10 от хода, летает от 0 до 255. А оказалось все тривиально, использовался PA0, а при работе с PORTA я ошибся и входом назначил PA7. Аккуратнее с числами в Hex!

В общем, ничего интересного, но бумагу испачкать захотелось.
Если вдруг кому-то нужно — ВОТ
Да, проект AVR Studio 5. Не могу писать в 4, подсветка синтаксиса убивает.Ничерта не видно. Потому пишу в 5, а отлаживаю в 4.

получает цифры по UART, от резистора или от кнопок, и зажигает соответствующие светодиоды
Кстати, для общего развития рекомендую сгенерировать Lss файлы и поизучать их. Хотя я с асмомм знаком, и отладчик в руках держал, но решения часто компилятор выдает неординарные.

PA0 — вход АЦП — для резистора
PA1-PA7 — выходы, подключены к диодам.
т.к. диодов в линейке 10, то задействовал еще PB2-PB4
PD3-PD6 подключил кнопки, но в коде используются только 2 из них.
  • +1
  • 27 апреля 2011, 16:40
  • Wraith

Комментарии (54)

RSS свернуть / развернуть
Прикольная плата. Тоже такую хочу)
+2
Дык это Pinboard 1.1 :)
shop.easyelectronics.ru/
+2
плата и правда супер )))))))
0
Хошь пну те экземплярчик, а ты мне ряд статей родишь по моему заказу :)
+1
Хорошо) Только своё допишу.
0
Я могу чего-нить написать. Пока кризис жанра, вроде обо всем уже написано, но если надо будет что-то разжевать… ))
0
как все оживились-то.
+1
Бггг. Я ж не ради пинборда — у меня своих макеток вагон. Просто надо куда-то потребность в творчестве канализировать, но вот про что писать — как-то в голову не приходит.
0
o! напиши и разжуй, плз, про управление сервой на tiny85 через USB (например, чтоб в телнете писать число, и серва поворачивалась), но чтоб без внешних генераторов — максимально простую схему)
0
могу свою совсем дешево продать.
0
Тоже чтоль диодами помигать :-)
+1
_delay_ms это ваще какой то инлайновый макрос с кучей условий и вычисляется он на лету. Компилится он прикольно. Сам оценил.
0
По поводу опроса кнопки:
if (PIND3)==0
{
//жмякнули кнопку А
}


В Си есть какие-то фишки для проверки одного бита или надо рисовать конструкцию вида:
if((PINB&(1<<3))==0) // (PINB&(1<<3))!=0), если проверять единицу
{
???
PROFIT;
}
или есть какие-то более изящные способы?
0
Увы только через маску. Но ты не пугайся оно скомпилится в одну команду :)
0
Вообще-то всё не так страшно, как написано у Вас =)
if(PINB & _BV(PB3))
{

}
или вообще так
if(bit_is_set(PINB, PB3))
{

}

И да, правильнее в этом случае говорить не «в Си», а в avr-gcc/avr-libc, потому что в IAR, например, всё немного по-другому. Но суть от этого не меняется, так как компилится всё это один фиг примерно в одно и то же.
0
Значит, придется к макросам sbi(port,bit) и cbi(port,bit) добавить еще пару… Превращаю Си в уютненький ассемблер :)
0
Так там вроде бы уже есть bit_is_set(x,x) или как то так. Только не помню где.
0
Кстати, о студии 4. Там можно менять подсветку синтаксиса:

c:\Program Files\Atmel\AVR Tools\AvrStudio4\edit\

Там лежат цветовые инишки для разных языков :)
0
А вот по поводу платы приобрести ещё можно? звиняюсь что не в тему.
0
Можно shop.easyelectronics.ru оставляешь там заявку — тебе на почту сваливаются реквизиты.
0
Я прочел весь курс AVR от DIHALT, + лекции за 4 курс по МК(я щас на 3 и у нас пока просто АСМ х86 ((( ), еще пару книг интересных по AVR… пришел к выводу, что лучше все на бумаге/компе проектировать и делать реально нужные устройства(в которые можно присобачить все эти мелочи типо сдвиговых регистров, мигающих светодиодов, даже если и без них можно было бы обойтись, но просто захотелось изучить), обходясь покупкой пинборда, т.к. экономишь деньги, развиваешь себя намного больше и быстрей… главное не бояться сразу браться за сложные проекты, не забывая каждый этап проверять себя — все ли правильно сделано в конкретном действии.

Меня допустим прикалывает — собираешь какуюнить жесткую фигну, да еще и с помощью ЛУТА всобачиваешь TQFP мегу, заодно прививаешь себе навыки аккуратности и внимательности при пайке, потом пишешь свою прогу, хотябы по примерам и результат радует просто ппц как… когда это все работает, сравнимо с оргазмом чтоли :D
+1
хеее ну ты конечно и привел сравнение ))))
а вот на счет того что от этого прет не по детски это дааа
0
Народ, а расскажите, что такого хорошего в AvrStudio 5? В ней что, уже стало можно писать проги? Что там для этого нового добавили? И что там такого убили, что отлаживать приходится в 4?

ЗЫ: сам давно программирую и под десктопы и под контроллеры и под ПЛИСы в CodeBlocks — очень удобная IDE, всем рекомендую попробовать (только ставить надо не релиз, а ночную сборку).
0
А ничего там хорошего. Оболочка от студии 2010. Ужасно тормозная.
Убили там поддержку JTAG ICE, так что отлаживать приходится в студии 4, ага)
0
Кстати вчера чистил комп от всякой мягкой гадости и снёс эту студию заодно.
Думаю вот попробовать NetBeans) В ней сейчас тулчейн WinAVR подхватывается автоматом)
Правда вот хз как avr-objcopy, avarice, etc. подключить.
0
Подождито-ка, «студия 2010» — это которая M$VS что ли? Мда… Они там чего-то укурились и откуда-то рухнули… Что-то фирма Atmel потихоньку теряет авторитет в моих глазах (впрочем, по сравнению с фирмой Nokia — совсем потихоньку =)).

А нетбимс — это же что-то изначально заточенное под джаву? Оно не слишком тяжеловато будет? А то от использования Eclipse для разработки на C у меня впечатления не очень…
0
Да да. IAR вот взял Eclipse за основу, а Атмел — мелкософт (
Нетбинс — потяжелее блокнота будет, но редактор кода просто божественен))
0
имхо, решение использовать VS как базу IDE вполне логичное — вовремя отказались от велосипедостроения.
0
Такое решение можно будет назвать логичным только после того, как M$ портирует VS хотя бы под линукс (я уж молчу про макос, фрибсд и прочие хорошие оси). И да, кстати, с какой версии M$VS из коробки поддерживает GNU Toolchain? Или с какой версии cl поддерживает платформу AVR?
0
имхо, ежу понятно, что MS никуда не портирует свою студию.
Что там кого с когда поддерживает не интересовался. Коим боком GNU Toolchain и компилятор cl к AVR Studio 5 относятся — не понял.
Стало лучше в новой версии — как по мне так да, intellisens, visual assistx определенно полезны.
На ICE забили — так с драконом все нормально, стоит он приемлемо.
Тормозит — не заметил, что на старом Dual-Core 1.73, и тем более на современном low-end Core i3. Грузится не мгновенно, ну так мгновенно только notepad++ загружается.
0
О, туда ставится VAX? Это очень хорошо! А то с бесплатными экспрессами он вроде не дружил.
Коим боком GNU Toolchain и компилятор cl к AVR Studio 5 относятся
Дык вроде AVRStudio 5 как раз GNU-AVR тулчейн и юзает для С/С++.
И да, кстати, с какой версии M$VS из коробки поддерживает GNU Toolchain?
Студия расширяемая и к ней можно прикрутить поддержку чего угодно. Разработчики Nemerle и GPCP так и делали, и не только они. Да и Delphi Prism туда же интегрируется.
0
ну да, AVR GNU Toolchain прикручен к AVR Studio 5 «из коробки»
0
Опа, халявный VAX из коробки. Абасраццо!
0
Ну про гнутый тулчейн это я к тому, что им явно погемороиться пришлось, что бы запилить эту фигню, ибо из коробки там только cl. Хотя, смотрю тут утверждают, что это не так уж и сложно. Честно говоря, сомневаюсь, но ладно, поверю. А вот про то, что М$ никогда не портирует ЭТО на другие оси я нисколько не сомневаюсь, именно по-этому считаю бесперспективным подобный переход.
Честно говоря, я юзал только 2005-ю студию, и единственное, что там интересного было — подсветка активных/неактивных ifdef`ов на лету, а в остальном ничего особенного. Тот же кодблокс ИМХО по функциональности интереснее, хотя там и есть серьёзные архитектурные косяки, да и некоторых мелких фич не хватает. Тормоза, кстати, тоже не впечатлили — ну да, не быстрый, но тот же Эклипс ещё не поворотливее. А вот размер — это просто убиться веником.

Кстати, интересно что будет с AVR32 Studio. Тоже в расход пустят?
0
Ага, AVR32 Studio теперь там же… Значит Эклипс им чем-то не понравился, а других IDE они не знают, вот и взяли MSVS…
0
Из коробки там только оболочка — Атмел использует Visual Studio 10 Isolated Shell.
А вот размер — это просто убиться веником.
Да ладно. Нынешние веники лишний гиг даже не заметят. К тому же, если стоит MSVS 10 — оно вероятно будет использовать шелл прямо из нее. Зато IDE нормальная, а то большинство их под МК — блокнот с подсветкой и вызовом компилера по хоткею.
0
То, что отказались от велосипедостроения — хорошо.
То, что взяли за основу тяжёлую, тормозную, глючную, заточенную только под винду унылую хрень от мелкософта, при наличии куда более приятных IDE — очень плохо.
0
Такая ли уж тормозная? Насколько мне известно, IDE у M$ весьма удачная. Работал с версиями по 2008-ю, нареканий к скорости тоже нету. К тому же она расширяемая (не в экспресс-версии, правда), есть много удобных плагинов и можно прикручивать другие компиляторы (что собственно атмел и сделала, как я понимаю). Знакомые программисты на С++ под ПК вообще другие IDE за IDE не считают (просто сам я работаю в основном в Delphi/BDS, и ничего сравнимого с ними для встроенного программирования не видел).
А IDE атмела как раз не впечатляла. Очередной велосипед скромной функциональности.
Вот что JTAG ICE оторвали — это плохо. Хотя, возможно, его таки можно прикрутить — IDE от MS хорошо расширяется, причем AFAIK API этих расширений опубликован.
0
2010 аццки тормозная. Запускается секунд 30 как минимум. Причём когда запустится, слёзно умоляет поставить какой-то хотфикс для «повышения производительности». Естественно, установка хотфикса никакого видимого эффекта не даёт)
0
А, ну стартуют сложные IDE долго (BDS вообще взлетает минимум минуты три). Но эта операция выполняется однократно (причем у меня нередко один запуск IDE на неделю работы в ней), так что под скоростью IDE я понимаю исключительно скорость отклика на действия. А в этом плане VS никогда нареканий у меня не вызывала. А вот фишечки, упрощающие работу там есть, тысячи их.
Насчет C::B — неплохая IDE, и из созданных не большими компаниями пожалуй одна из лучших. Но до BDS ей далеко. А BDS — падучая и (говорят) далеко не столь функциональная сдирка с MSVS. Хотя C::B шустрая, расширяемая и настраиваемая, так что потенциал у нее очень даже неплох.
Ну и про линукс. Вы так говорите, как будто авр студио была под линукс. ЕМНИП она даже под вайном не взлетала. Атмелу как было пофиг на линукс, так и осталось. Так что там ситуация не изменилась, а под виндой стало лучше.
0
(просто сам я работаю в основном в Delphi/BDS, и ничего сравнимого с ними для встроенного программирования не видел)

А можно по-подробнее? какая связь между Дельфи и встраеваемым программированием? Или что имелось ввиду под «встроенным программированием»?
0
А кто сказал, что я в основном программирую под встраиваемые системы?) Я вообще-то больше геймдевом занимаюсь.
И я имел в виду, что ничего сравнимого по функционалу/удобству для программирования МК — не видел. Правда не щупал Eclipse, NetBeans и Code Composer. Но AVR Studio 4, IAR, Keil — не впечатляют.
C::B, Dev-C++, #Develop, Lazarus и еще некоторые IDE'шки пробовал в варианте для прикладного программирования. За исключением лазаруса — неплохо, но далеко не BDS. Про лазарус лучше тактично умолчать)
0
Сорри, не правильно понял формулировку.
Правда не щупал Eclipse, NetBeans и Code Composer. Но AVR Studio 4, IAR, Keil — не впечатляют.
Эклипс мне не нравится, остальные две тоже не щупал. Про последние три согласен — писать в них, мягко говоря не комфортно.
Я вообще раньше пользовался UEStudio — весьма неплохая система, особенно если учесть, что тогда в сферу моих интересов входило ещё веб-программирование. Особенно меня там радовали макросы и блочный режим редактирования. Потом переполз на CB — в нём нет некоторых фич UES, зато есть некоторые более интересные вещи, плис хорошая расширяемость. Правда у неё один большой минус — заточена преимущественно на C/C++ (что, впрочем, не мешает мне писать в нём на VerilogHDL — всё ж лучше, чем в квартусе).
А есть ещё, кстати, CodeLite — тоже интересными фичами обладает.

Кстати, а что такого интересного в BDS есть? Что-то я её ни разу не видел. Пробовал работать с C++ Builder, но не понравилось.
0
Приятный редактор, приличный code insight (хотя он иногда отваливается, но реже, чем работает в опробованных мной версиях C::B), расширяемость (MMX и Castalia уже считаю столь же необходимыми компонентами, как VAX в MSVS), достаточно гибко настраиваемый интерфейс, удобный отладчик (и он не отваливается, как это регулярно происходит в C::B, Dev-C++, Lazarus), удобный редактор GUI (собсна в дельфи он всегда был одним из лучших), аккуратный и удобный интерфейс. Может оно и не лучше MSVS (с которой я работал мало), но явно лучше большинства остальных.
Собственно, поскольку подсветка, отладка и интеграция с компилятором есть практически во всех IDE — оцениваю я их в основном по функциональности code insight (т.е. code browser, подсказки, автодополнение и навигация), расширяемости и настраиваемости интерфейса.
0
Кстати, ты юзаешь C::B? Напиши статейку, как ее подружить с WinAVR/IAR/симулятором/плискокомпиляторами/etc. Надо бы ее освежить (у меня r.5911) да поэкспериментировать.
Алсо, к ней расширения какие-нить есть? Хотелось бы аналог VAX и MMX, хе-хе.
0
Ну с WinAVR оно дружит из коробки, ИАРом я не пользуюсь, так что не пробовал прикрутить (хотя идея была, так как друг им пользуется). С симулатором и житагом игрался как-то давно, могу попробовать вспомнить. А прикручивать плисокомпилятор… Что-то пока даже не представляю, как это сделать, может потом, когда будет побольше опыта плисоводства. Пока меня не сильно напрягает написание кода в одной системе, а синтез в другой. Хотя, конечно, немного автоматизировать хочется. Так что, вроде бы, писать особо не о чем — разьве что общий обзор.
Расширения «какие-нибудь» есть. Вопрос в том, какие интересуют =) VAX — как я понял, это просто продвинутый парсер кода. Что в нём такого замечательного? И что умеет MMX (а то как-то по этой аббревиатуре не очень хорошо гуглится ;))?
0
ModelMaker Code Explorer — A Refactoring Code Browser. Продвинутый браузер кода/навигатор с рефакторингом и другими вкусняшками. Castalia — набор плюшек для IDE (примерно половина из них причем добавляет в старые IDE плюшки из BDS).
С VAX я не очень знаком, но знакомые сишники люто хвалят. Ну и подсветка с ним прикольней.

А где обитают расширения для C::B?
0
Почти все расширения CB идут в комплекте с ним. Список можно глянуть тут — wiki.codeblocks.org/index.php?title=Code::Blocks_Plugins
0
я тут поползал по забугорным форумам типа AVRFreaks. там народ тоже стонет, что не подерживаются меги 16/32 и т.д., что JTAG ICE лесом, вроде говорят что в финалке STK-500 держать будет точно, так же как и 16/32/и т.д. меги. Посмотрим.
0
Что значит не поддерживаются? Они не поддерживаются лишь софтвенным AVR симулятором.
0
Да, пардон, имелся ввиду программный (софтовый) симулятор
0
Вчера переписывал свой градусник под мегу 8515… тоже поддержки не было, изматерился :(
0
вроде jtag с 16-ой меги? если я правильно помню
+1
Там нет поддержки в avrsшmulator даже
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.