Перейти к содержанию

Программирование Avr Для Чайников


Рекомендуемые сообщения

Уважаемые радиолюбители!

Начав изучать программирование микроконтроллеров семейства Atmel, я пытался найти пошаговое руководство для совсем начинающих...

К сожалению, большинство материалов либо слишком "сухое", либо слишком запутанное. И мне как и многим пришлось наступать на всем известные грабли, задавать глупые вопросы и самостоятельно находить ответы! По сему, я решил попробовать облегчить жизнь всем желающим начать изучать данную тему и сделал несколько видео уроков. Если вас устраивает качество и подача предоставленных материалов - я буду развивать тему. Если же я слишком нуден, не логичен не понятен - займусь чем нибудь другим :)

Внимание!!! Данный материал предназначен для совсем начинающих!

Поэтому, я стараюсь максимально подробно раскрывать тему! В следствии чего видео получается затянутым (кому лень - проматывайте)

Ниже будут добавляться уроки:

Урок 0: Вступление

1.На кого расчитаны уроки?

2.Выбор IDE

3.Необходимый софт

4.Выбор языка

Урок 1: Порты (Теория)

Общие понятия и теоретический материал по работе с портами в микроконтроллере

Урок 2: Порты (Практика)

Практическое занятие по работе с портами в микроконтроллере

Я не являюсь профессиональным радио мастером или программистом! Для меня это хобби! Следовательно мои взгляды и мнения сугубо субъективны! Учитывайте это при просмотре :)

Принимается любая критика :)

Изменено пользователем kobraz

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Меня вот интерессует работа с прерываниями по переднему и по заднему фронту, а так же работа с переменными, и как отслеживать чтобы одной кнопкой запустить к примеру мультивибратор и этой же кнопкой остановить его работу

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

не

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые аккумуляторы EVE Energy и решения для управления перезаряжаемыми источниками тока (материалы вебинара)

Опубликованы материалы вебинара Компэл, посвященного литиевым аккумуляторам EVE Energy и решениям для управления перезаряжаемыми источниками тока.

На вебинаре мы представили информацию не только по линейкам аккумуляторной продукции EVE, но и по решениям для управления ею, что поможет рассмотреть эти ХИТ в качестве дополнительной альтернативы для уже выпускающихся изделий. Также рассмотрели нюансы работы с производителем и сервисы, предоставляемые Компэл по данной продукции. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

а замечания будут?

Я просто планирую переснять ети первые три урока - так как это была проба!

И после етого записать уже всю серию уроков!

Как усваивается материал? Все ли понятно?

Есть конструктивная критика?

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Раньше было актуально, так как обучающие видео на тюбике полный шлак и радоваться приходилось каждому новому, но сейчас, после появления на ютубе нашего земляка Александра Писанца, не думаю, что можно лучше сделать уроки, чем это удается ему. Таких графических демонстраций, которыми изобилуют его уроки, просмотр портов, лог записи в переменные и пр., объясняющие происходящие процессы не видел нигде и думаю не увижу еще долго, просто, понятным языком, лаконично, короче смотреть не скучно и доходит хорошо. Да, есть у него проблема с транскипцией англоязычной терминологии, простеньких ошибках в русскоязычных коментариях к коду, но не каждому дано быть лингвистом, но от этих мелких ошибок его уроки не становятся менее ценными. Специально расписал так подробно, на него ИМХО стоит равнятся каждому, сам пытаюсь освоить Си для МК, слежу за подобными уроками. Но Вам конечно же удачи, любое начинание это хорошо и нуждается в поддержке. Звук бы погромче, а то слабовата амплитуда)

Ссылка на комментарий
Поделиться на другие сайты

спасибо за коментарий

со звуком понятно - тут варианты есть !

а желания продолжать все меньше :) Смысл делать то что уже есть ...

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Чего нет и скорее всего не будет у других - варианты синтаксиса, детальный разбор, то есть можно записать тот же DDRA десятком разных вариантов, в десятиричной, двоичной и других вариантах, очень нужен разбор чужого кода, то есть условно есть к примеру код для часов на меге8 или для другого девайса, написан в BASKOM-AVR, например, кому-то надо адаптировать под 16-ую мегу и он привык учиться в Студии, в большинстве случаев надо другую библиотеку прикрепить, порты и пины переписать, но синтаксис другой в этом компиляторе, непривычный. Много можно придумать, навскидку пока ничего больше не добавлю. Уроки же именно для начинающих стоит привязывать наверное к определенному устройству, вроде мигалки светодиодов, правда что-то "поприкладнее", чтобы код откуда можно было смело модулем скопипастить в другое устройство, то есть модульную структуру сразу задумать в цепочке уроков. Бросать в любом случае не надо, но не стоит концентрироваться именно на азах "как у всех, но по-своему", по азам хороший канал я упомянул выше, всё естесно на правах ИМХО. Чтоб смотрели активно и много юзеров нужно искать что-то оригинальное, просмотрите те же темы вопросов новичков по форумам и спрос сразу станет очевидным.

Ссылка на комментарий
Поделиться на другие сайты

Всё очень понравилось. Но несколько просьб:

1. Если что-то пока использоваться не будет, не заикайтесь об этом. (урок 1. Зачем нужна переменная PIN вы не рассказали, а когда остаются вопросы, портится общее восприятие)

2. Хотелось бы увидеть результат не только в симуляторе, но и в железе.

С большим желанием жду следующих уроков

Изменено пользователем Артём Зверев
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Огромное Вам спасибо за уроки! Я недельку назад начал изучать данную тему. И уже в голове каша =))) Решил учиться по Вашим урокам, так сказать, вместе с вами познавать =))) Очень прошу, не забрасывайте пожалуйста уроки =)

Ссылка на комментарий
Поделиться на другие сайты

Так! Что бы внести ясность! Я собирал информацию по вашим заявкам !

Так что уроки будут! При чем будет вся серия от основ до готового рабочего устройства в железе! (планирую ампервольтметр с температурным датчиком - такой себе комбайн)

Касемо подхода! PIN - да я о нем не сказал ничего так как мы его не используем в нашем первом практическом задании! Просто я дальше уроки не снимал еще !

Ети три были пробой пера что бы выявить все недостатки и будут пересняты!

Далее по теме уроков идет работа с битами и сдвигом регистров - там уже на примере нажатия кнопки используется ПИН - следовательно мы к нему возвращаемся и делаем практическое задание! И так будет идти весь курс! Осилили кусочек - проверили на практике - закрепили! Начитывать как все кучу теоретического материала - я не стану по причине того что сразу каша и ничо неясно!

То есть уроки будут идти именно от простого к сложному !

Но всеравно любые предложения будут рассматриваться!

На данный момент - практически готов план уроков - но есть проблемы с микрофоном! тот что под рукой говняно пишет! На макбуке запись приотличная - но в виду того что студия в вируалке все несколько подлагивает! Вобщем будем как то выкручиваться - на выходных попробую пошаманить с микрофоном и переснять 1 урок!

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Все понятно! Будем ждать новых уроков! Практика, согласен, важная состовляющая! Я без практики запутался напрочь! Теперь с Вами все с чистого листа начал :)

Извините, но вы уверены в целесообразности переснимать уже готовые ролики? Может это сделать позже? Если честно, там и так все отлично! Просто и понятно! :)))

Изменено пользователем sensor2
Ссылка на комментарий
Поделиться на другие сайты

Там к сожалению есть пара косяков включая проблему со звуком! Ну и немного тема там путается! так что надо согласно плана действовать!

Хуже не будет :)

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

а замечания будут?

Замечание такое:

DDR, PORT, PIN - это не переменные, а регистры. С переменными ничего общего они не имеют. Кроме как в них можно записать значение.

Функция которую вы описываете "presets()" используется не только для удобства чтения программы, но основным является то, что ее можно использовать в любой точке программы, но не до ее объявления. Например:

void any_function(void)
{
   presets();// так нельзя потому что ф-ция еще не обьявлена
}
void presets(void)
{
 //какой-то код
};
int main (void)
{
 any_function();
}

Если она используется единожды, то ее лучше объявить с "рекоминдацией" "inline" - то есть inline void presets(). Она рекомендует компилятору вставлять код который описан в ф-ции в, то место где вызывается эта ф-ция,это делается для того, чтобы минимизировать время работы со стеком, регистрами. Эта штука как минимум сэкономит вам место в памяти МК.

И раз уж вы упомянули о выносе кода за тело основной программы, то стоит еще сказать о том, что любую ф-цию можно объявить перед телом основной программы, а описать ее можно уже в любом месте. Например:

void presets();
void any_function(void)
{
   presets();// так можно потому что ф-ция обьявлена выше
}
int main (void)
{
  any_function(void);
};
void presets (void)
{
   //ваш код
}

Если вы не собираетесь что-то разжевать, то и упоминать об этом не стоит иначе -каша в голове.

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Вы не путаете мои рекомендации с курсами по программированию на языке С??? :)

Ваши замечания дельны ! Но сомневаюсь что те, для кого эти уроки расчитаны смогут осилить вот так вот все сразу!

Я берусь показать как работать с МК попутно давая рекомендации которые выплывают только субьективно из моей точки зрения!

Те кому нужно будет углубиться - уже самостоятельно должны читать курс программирования по С!

Мне и так предстоит проделать коллосальную работу отталкиваясь от собсвтенного энтузиазма - так что добавить еще и основы С я просто физически не смогу!

Да и не такой я хороший программист пока что :)

То что вы показали нужно тем для кого ети уроки уж неинтересны и примитивны :)

Но всеравно спасибо!

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Kobraz, а не могли бы вы сразу написать список требуемых железок? Чтобы уже можно было заказать их на иностранных сайтах. Пусть идут не торопясь =) Кстати ATmega8A я уже нашел у себя в городе и купил =) 95 руб цена =)

Программатор сами будем собирать или заказывать?

Ссылка на комментарий
Поделиться на другие сайты

Повторенье - мать ученья. Любой урок должен основываться, в первую очередь, на фактах. ну представьте - вы советуетесь с человеком и разговариваете с ним на своем субъективном языке. Он вас поймет? Вряд ли. Вы говорите о языке программирования.

Как работать с МК с точки зрения схемотехники - так программирование вообще ни причем. А если вы даете основы программирования, то уж простите, но основы они - есть фундамент обучения и никак не могут быть изменены. Не возможно научится писать программы правильно если не знать всех возможностей языка, а МК это только треть. Сам сок высокоуровневого языка - это его возможность подстраиваться под прихоти программиста. Из массы путей решения выбрать наиболее короткий или быстрый в исполнении.

Вы говорите почитать - ну так нужно тогда начинать с почитать, ато вдруг окажется что рекомендации не пригодны для использования. Понимание процесса - ни есть сам процесс.

Ну и в конце концов-взялись за работу, значит будьте готовы к критике.Возьмите за основу какую-нибудь книгу или несколько книг. Сделайте одну но очень понятную- вместо того, чтобы изобретать. Вот этого лично мне и не хватало в моем обучении.

1. Вы не ошибетесь в изложении.

2. Сможете создать необходимый фундамент знаний

3. Создадите такой курс обучения-которым будут пользоваться даже люди которые просто хотят вспомнить, то чем давно не пользовались.

Это будет ценнейшим достоянием нежели, то что получится-отсебятина.

С уважением к вам и вашему делу. Простите если был резок.

Изменено пользователем Rhime

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Kobraz, а не могли бы вы сразу написать список требуемых железок? Чтобы уже можно было заказать их на иностранных сайтах. Пусть идут не торопясь =) Кстати ATmega8A я уже нашел у себя в городе и купил =) 95 руб цена =)

Программатор сами будем собирать или заказывать?

Из железа нам будет нужно:

1. Макетная плата (5х5 примерно такая 0163.jpg)

Либо же печатку сами сделаете если есть необходимое

Либо макетную плату что бы не паять - я буду использовать вот такую

otladochnaya-plata.gif

2. 8 светодиодов (чисто для теста - бегущую строку или помигать)

3.10 резисторов 220-330 ом

4. Датчик температуры LM335

5. ОУ LM358

6.Пара подстроечных резистров на 10к и 100к

ну и собственно экран от нокии примерно вот такой

http://www.ebay.com/...=item5d3ef6b6fb

НУ может по мелочи еще что! Этого хватит что бы пройти весь курс и собрать готовое устройство !

НА счет программатора - дело каждого! Можете собрать сами (рекомендую клон MKII) или купить готовый до 10 у/е их очень много! Желательно с поддержкой ISP что бы мы могли программировать камень не вынимая из устройства ! и смотреть как меняется работа устройства

Изменено пользователем kobraz

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Видосы не смотрел но плюсанул. Когда надумаю переходить с ASM на С то посмотрю.

А то на С проще как то. Но памяти много занимает.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Повторенье - мать ученья. Любой урок должен основываться, в первую очередь, на фактах. ну представьте - вы советуетесь с человеком и разговариваете с ним на своем субъективном языке. Он вас поймет? Вряд ли. Вы говорите о языке программирования.

Как работать с МК с точки зрения схемотехники - так программирование вообще ни причем. А если вы даете основы программирования, то уж простите, но основы они - есть фундамент обучения и никак не могут быть изменены. Не возможно научится писать программы правильно если не знать всех возможностей языка, а МК это только треть. Сам сок высокоуровневого языка - это его возможность подстраиваться под прихоти программиста. Из массы путей решения выбрать наиболее короткий или быстрый в исполнении.

Вы говорите почитать - ну так нужно тогда начинать с почитать, ато вдруг окажется что рекомендации не пригодны для использования. Понимание процесса - ни есть сам процесс.

Ну и в конце концов-взялись за работу, значит будьте готовы к критике.Возьмите за основу какую-нибудь книгу или несколько книг. Сделайте одну но очень понятную- вместо того, чтобы изобретать. Вот этого лично мне и не хватало в моем обучении.

1. Вы не ошибетесь в изложении.

2. Сможете создать необходимый фундамент знаний

3. Создадите такой курс обучения-которым будут пользоваться даже люди которые просто хотят вспомнить, то чем давно не пользовались.

Это будет ценнейшим достоянием нежели, то что получится-отсебятина.

С уважением к вам и вашему делу. Простите если был резок.

Вы говорите все правильно! Но поймите меня правильно ! Я обычный радиолюбитель! То есть это мое хобби! Я просто стараюсь помочь стартонуть в данном направлении! Для того что бы сделать все как вы говорите - нужно в 3 раза больше уроков и так далее! Где же я найду столько времени и сил? Что бы дать качественную и раскрытую основу нужно не видеоуроки а курсы в живом времени :)

Еще раз повторюсь - моя цель - взять за руку человека который только решил попробовать что же за чудо такое МК и провести его от установки ИДЕ до сборки простейшего вольтметра! Не забивая голову теорией таблицами и прочими ньюансами коих очень много! Вот после того как человек пройдет ети уроки - у него появятся более осмысленные вопросы и серьезные которые он при желании уже будет изучать самостоятельно с помощью великого гугола! Например можно перейти к курсу Александра Писанца - который уже более грамотно раскрывает тему с ньюансами! Подведем итог:

Это не очередной курс уроков по программированию МК

Это не подробные уроки с разжевыванием и начиткой теории

Это не курс программирования на С

Это вводный видеокурс предназначенный для ознакомления совсем чайников с основами использования МК в практике радиолюбителя на практике!

Потому материал в нем выдается только нужный для выполнения поставленной нами задачи! Ну а дальше по накллонной - кто скатиться вниз кто пойдет в верх!

Кроме того я же сразу в первом уроке сказал - что советы я буду давать со своей точки зрения и не факт что они правильные !

Как то так!

з/ы/ (на самом деле очень приятно читать обоснованную критику и бо в ней зарождается истина)

Видосы не смотрел но плюсанул. Когда надумаю переходить с ASM на С то посмотрю.

А то на С проще как то. Но памяти много занимает.

После того как скомпилите на сях - мона открыть проект дебагером и увидеть код на асме! соответственно его поправить!

Ну а относительно памяти... Тут вы конечно правы! код на асме занимает меньше места писать на нем вроде как даже привильней! Но мы живем в мир высоких технологий в котором с каждым годом размеры камне все меньше а внутренней памяти все больше и цена все дешевле - учитывая эту тенженцию - я не вижу смысла Учить асм обычному радиолюбителю. Вот если вы зарабатываете программированием МК в какойто крупной канторе то конечно тут АСМ - все парвет ! Но для того что бы сделать вольтметр или температурное реле - си как то быстрее и проще :) Хотя мне после питона что СИ что Асм - все мерзапакасть :)

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Ну в таком случае остается только пожелать удачи и в случае чего - помочь нуждающимся.

- А совесть в курсе? - А совесть в доле! :-D

Эксперт — это человек, который совершил все возможные ошибки в некотором узком поле.

Все грамматические ошибки являются авторским стилем изложения материала.

Ссылка на комментарий
Поделиться на другие сайты

Кстати в начале топика написанно

Я не являюсь профессиональным радио мастером или программистом! Для меня это хобби! Следовательно мои взгляды и мнения сугубо субъективны! Учитывайте это при просмотре :)

Сегодня вечером выложу общий план видеокурса - надо будет его тоже обсудить - возможно нужны будут изменения

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Но для того что бы сделать вольтметр или температурное реле - си как то быстрее и проще :)

Вот вот. О чем я, на СИ проще. И исходников и информации по нему много.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...