Пишем первый код для ATMEGA32 в Атмел студио и мигаем светодиодом
HTML-код
- Опубликовано: 17 окт 2024
- С помощью программатора USBasp прошью микроконтроллер Atmega32.Напишу код в программе Atmel studio,а программой SinaProg прошью микроконтроллер.Код написан для светодиода чтобы он мигал.Также в среде разработки я изменю код чтобы увидеть,что произойдет со светодиодом
Быстрый обзор общирной темы, здорово.
Но есть ошибки:
1. F_CPU не задаёт скорость с которой будет работать контроллер, туда записывается фактическая частота тактирования для корректной работы функций. Частота тактирования настраивается в фъюзах.
2. DDRB задаёт направление работы выводов порта и по умолчанию все выводы настроены как входы (так что разумеется что ничего работать не будет если не прописать DDRB). Так же DDRB не зачем пихать в цикл, достаточно один раз определить направление работы пинов в мэйне.
@@ХерлокШолмс-т7ч та все, вместо частота работы частота тактирования, вместо настроек фьюзы, вместо пихать в цикл можно было написать что программа делится на сетуп и цикл и так далее.Понятно что точно и по делу простым языком сложно, и фьюзы это фьюзы а не настройки , но посыл в гугл это уже слишком.
А вы подеритесь -горячие финские парни
@@ХерлокШолмс-т7ч прикинь, училка на уроке скажет что не задаётся целью кого-то научить и дома прочитаете все в учебнике или в гугле. Или мы смотрим эти ролики не для того чтоб чему-то научиться, а по другой причине? )
наконец-то Тёмыч дозрел до контроллеров! новая эпоха на канале начинается)
Легендарный электронщик!
Ага, только с этим он лет на 6 как минимум опоздал когда на ютубе эта тема популярность набирала.
@@MaksovichPlay да пофиг, не в популярности счастье.
слово "дозрел" не совсем удачное. т.к. не все, кто пишет код для мк, обладают такими знаниями, например, я. если хочешь писать нормальный код, эти знания пипец как нужны
Отлично. Артём, продолжай. Твоё огромное преимущество, в том, что Ты вещаешь очень ясно и коротко. Без воды и всякого фуфла. А это, редкость.
Спасибо.
Большое спасибо, наверное самый подробный ролик по тому как атмегу 32 прошить программатором. Я начинающий сложно разобраться, а плату арудино за такие деньги покупать дорого... долго искла видео на подобную тему, а выскочило случайно. Спасибо еще раз.
Кем работал автор я не знаю, но он объясняет отлично. Обязательно ему надо поставить лайки.
Первое доходчивое объяснение на ютубе.
учи абревиатуру ....
MISO - Мастер-Iнпут/Sлэйв-Oутпут......))))
а в общем, молодчага !!!
Молодчина! Давно уже надо было тебе микроконтроллерами заняться. Если вопросы будут, пиши в личку, с радостью помогу по железу и по программам, я с МК уже несколько десятилетий борюсь.
Костя, В транзистор тестере сгорает вход от не разряженного конденсатора. Можно ли сделать программу прошивки для 328р мк, что бы были задействованы другие входа.
Вот это было бы здорово!
@@СашаАлександр-ж5ь если исходный текст программы есть, то это сделать легко.
В старых версиях программы все было кардинально прибито гвоздями. в последних прошивках вроде бы настройки стали гораздо гибче. А вообще по идее на входах ацп можно повесить стабилитроны или супрессоры на 5 вольт. Правда я не знаю что раньше умрет от высокого напряжения диод или порт мк
Ох. Круто что ты рассказываешь о том что пробуешь. И еще круче что делаешь ты это чуть ли не в режиме реального времени. Но
1. с мк лучше потратить одну макетку и час времени но таки сделать отладочную плату в которую можно засунуть любой мк и прошить.а потом не вынимая из кроватки отлаживать
2. желательно рассказать зрителям и про иные программаторы.
Например клоны программатора громова, stk500, avr doper ,jtag, бутлоадеры, avr doctor, параллельный программатор.
3. еще можно показать как перешить /обновить программатор. Рассказать о том что есть модификация usbasp умеющая работать не только с avr но и с i2c/spi флеш . Есть прошивки имитирующие программатор stk500v2. Что можно эту же плату превратить в usb-i2c или usb-uart переходник
4. Еще можно купить ардуину в любом исполнении и показать что есть не только arduino ide И вообще что код можно писать в блокноте
Ну наконец-то! Долго я ждал это видео,не бросай,делай до конца.
Молодец ясно и дохотчиво краткость -сестра таланта!
Спасибо тебе за нормальный спэил на английском !
Хорошо сказал!
Артем молодец! Продолжай, очень хорошо объясняешь.
( немного поправлю - MOSI - Master Out Slave In, соотв. MISO - Master In Slave Out) т. е. моси-мисо, а не мосл-млсо - это выводы для обмена по протоколу SPI.
Про работу от кварца расскажи.
О! Только хардкор, только паяльник! Ждем продолжения.
не мосл, а моси (MOSI) - Master Out Slave Input. )))
@@Yupitrer автор же сказал, что только начинает разбираться. Я в свое время, когда начинал, тоже тупо обезьяничал с чужих проектов, не понимая нифига. Растет челик и это похвально))
@@Yupitrer В твоём случае вообще писать не стоит , или подучи грамматику
@@Yupitrer дайте ссылки на толковые каналы.
Артём, привет . Мы все накупили АРДУИНО,Научи нас
Никаких ардуино! Только низкоуровневое железо, ассемблер, ATF16V8!
В принципе там распаяна такая же мега с прошитым загрузчиком. Разница лишь в том, что среда ардуино большую часть работы берёт на себя и порты именуются иначе.
Но при желании можно также вручную писать код и управлять регистрами.
Вот это я понимаю объяснение ... Лайк однозназначно
Тпе⁵
продолжай дальше 👈🤓👉 нам нравится
Мигалка на одном микроконтроллере). Сам недавно начал изучать микроконтроллеры, только я на Pic и ассемблер.
Страшная тема будет, если связать контроллеры с радиоэлектроникой. Ножками можно будет включать/выключать отдельные узлы аппаратуры, принимать/отправлять сигналы и наверно ещё сохранять данные и получать их с компьютера или флэшки.
В одно время накупил ногастых Mega128, но руки дошли только до часов. Внутри есть отключаемые резисторы подтяжки на плюс питания, и если порт настроен на вход, то отправляя в него единицы, можно включить эти резисторы (наверно на это реагирует протеус). У себя использовал их как токоограничивающие для светодиодов
Спасибо за видео!
Советую обратить внимание на серию контроллеров stm32
Побольше таких видео, очень хорошо объясняешь!!!!!!
Хорошо, что добрался до микроконтроллеров. В следующем видео прикрепи две кнопки, которые будут изменять частоту миганий.
мой скромный комментарий: я верхний комментарий не удаляю а пишу в него краткую инфу, типа, коротко что прога делает, буквально 4-5 слов. Это не актуально если кода строк 10, а если его пол тысячи? И, это, инициализацию порта DDRB лучше вынести за бесконечный цикл. Он в процессе работы не изменяется, а ресурс и машинное время жрет. ИМХО
Спасибо за урок. Жду продолжения уроков по МК.
Здравствуйте! Функцию DDRB нужно вставлять в int main(), но до while(1). Инициализация должна проходить один раз, при включении МК, а у Вас она в цикле постоянно включается.
Ура. Видео про МК! Так держать!
Обычная мигалка, которую я писал на первом уроке информатики, ржу😂😂😂
Да, это интересно, будем развиваться дальше, в сторону цифровых устройств и программирования: умный дом, умный город, умная планета))
Артём,я являюсь твоим подписчиком очень давно.Твои видео в большинстве случаев очень познавательные.Однако в данном видео я считаю информация не раскрыта даже поверхностно.Я думаю былобы логичнее предоставить информацию более раскрыто а в качестве наглядной программы использовать например CodeVisionAVR.Я самостоятельно начинал изучать меги пару лет назад и уткнулся в информационный барьер подобных видео.Считаю важным раскрыть данную тему более развернуто.А примеры которые ты приводишь это уровень ардуинки для школьника,необходимо показать машинный код в полном объёме и кратко рассказать о всех возможностях контроллера,в частности ацп,цап,счетчики,1wire и другие замечательные возможности которые можно задействовать как програмно так и на физ уровне.
@@trudnik_pri_monastire Конечно учите племяша мигать светодиодом с помощью ардуинки, пусть он придет на завод и когда сломается немецкий чпу станок он так и скажет начальству что он не программист а только светодиодом умеет управлять, вы ведь сами должны понимать что образование в нашей стране только на бумаге, если учить ребенка работать с такими сложными вещами то только с нуля. А видео у Артема достойные беспорно, сам много из них подчеркнул нового. По поводу возможностей скажу так, я живу в отстойном городишке где один магазин радиодеталей и я за последние 10 лет там был всего два раза, все элементы которые использую я исключительно с совковых плат военной приемки которые я подбираю на помойках А МК я заказываю по почте у друзей китайцев
для отладочных плат МК рекомендую программу Flprog (бесплатная).
Даже если частично коснетесь темы микроконтроллеров вкупе с грамотным использованием схем по подключению мощных потребителей, то будет очень полезный материал. Особенно если будет про согласование и подавление помех!
Быстрый старт называется, поздравляю, хороший выбор по пирогам и камня. С 32 мне кажется слишком резкий старт, ну или брал бы тогда уже 256)
Артём доброго времени суток. У меня проблема с паялкой, ELEMENT 852D+. Надо прошить МК. Тебе такая задача по плечу? Николай.
Boston Dynamics не за горами 👍
Ждём новые проекты
Директива include подключает библиотеки. Если честно, Артем, мягко говоря, ты не совсем точно объясняешь данный материал.
Да он вообще нихера не шарит. Просто технично в интернете тырит чужие материалы и выдает за свои. И так уже года два.
сишники подъехали ))))
@@konstantinp440 Я больше по ассемберу. У Артема ролики на другие темы интересные, но в программировании он пока не шарит, но при желании освоит. Это объективно и не целью поумничать или обидеть.
: ) понравилось : ) трицатый лайк мой : )
Моси а не мосл там буква и грамотей 😁 и ресет подтягивай к плюсу всегда через сопротивление
тоже угарнул МОСЛ и МСЛО)))
А просто поправить человека нельзя? Надо именно обоc p_ть?
Мясо моси
мосл удивило да😄
Это он так ошибочно выучил и все перешло в привычку) тоже раньше поправил его в коментах в одном из роликов.
Артём, спасибо за видео! Вы задаёте частоту процессора 1мГц. Это частота питания, или это внутренняя частота процессора. Микросхема запитывается через кварц? Или просто постоянка 5 В? Извините за глупый вопрос...
генератор внутри мк,внешнего кварца не нужно
Благодарю за ответы.
Это дефайн, то есть константа для правильной работы функции делей. Частота процессора и источники задания этой частоты задаются фьюзами. Изначально это внутренний рц генератор 1 мегагерц.
Ещё! Даёшь цифровизацию Артёма!
Друг, подскажи как создать прошивку для At89s52-24pu, просто их нет в atmel studio, а чипов около 20 штук имеется, хотелось бы их использовать
В keil uvision c51
Так и до Ардуино дойдём. Жду с нетерпением))
Ненужно
Тоже самое делал 16 лет назад, только программатор был из LPT порта.
Имею желание попробовать ваши опыты. Но не знаю, как связать контроллер с компьютером? Можете подсказать, как это делать?
Классно объяснили спасибо
Если уж по-англиски говоришь:) читается в русской транскрипции МИСО ,МОСИ, Билд :) Не обижайся, ролик нормальный, просто слух режет:) И еще, сточку DDRB=0xff, надо бы вынести из тела цикла while.
А для чего нужен этот SinaProg, если всё необходимое есть в самой AVR Studio?
Всегда было интересно разобраться с атмел студио, но инфы нормальной мало. Все подсели на ардуино. Я предпочитаю pic процессоры, и среду protonide
Когда-то пытался освоить атмел студио, сделал пару проектов, но муторно всё это. Перешел на ардуино и FLProg. Для человека не программирующего каждый день самое оптимальное.
Что то тоже подумываю позаниматься. Есть реально интересные ссылки на инфу по этой теме чтоб с нуля не искать в гугле?
@@okhamradio Я же в первом посте написал. Программка буквально за день изучается и не надо думать какие порты активировать и что в регистрах прописать, знай блоки нужные вставляй. И опыта программирования никакого не надо.
Красава. Растешь
Спасибо
mosi , miso. вроде расшифровывается как Master Out Slave In , Master In Slave out. ( в общем моси, мисо, а не мосл, млсо)
Чего-то все про ардуину. Тоска. Как насчет ассемблера?
Процессор AVR это не обязательно Ардуино :)
Даже Ардуино.IDE не обязательно про Ардуино :)
Это Ардуино обязательно про AVR :)
Ассемблер для ленивых, профи сразу в машинных кодах пишут.
@@sserg74 прошить кстати можно тоже руками )
Разве он продаётся не пустой? Загрузчик как настроен то?
Свето диод, это хорошо. В транзистор тестере сгорает вход от не разряженного конденсатора. Нужна новая прошивка для 328р мк, что бы были задействованы другие входа.
Вот это было бы здорово!
Образование не хватает!
@@Al.Sy. правильнее будет диплома-бумажки не было а образование как раз было)
В 65 лет познавато учится
вроде бы MISO с программатора надо сажать на MOSI контроллера, и наоборот, или я ошибаюсь?
Да
@@orestkochmar7745
*Да* - _ошибаешся_
Или
*Да* - _MISO на MОSI ..._
Или дно из двух?
*Да?*
Mosi на mosi, miso на miso
Это не Тх Rx)))
@@teenkode точно, тупанул я.
1) F_CPU не задает частоту процессора, он говорит библиотекам на какой частоте фактически он работает. А саму частоту работы задают специальные регистры - FUSE (или фьюзы)
2) Установку DDR лучше вынести за пределы цикла
3) include не разрешает функцию, а подключает библиотеку (фактически говорит компилятору что где-то в библиотечных файлах есть функции, описанные в этих хедерах)
4) использовать ATMEGA32 в 2020 - неоправданно дорого и непрактично, китайские ардуинки на ATMEGA328 или ATMEGA32U4 стоят гораздо дешевле, и для них не обязателен программатор
5) не обязательно использовать Sinaprog, в авр студия умеет со многими программаторами взаимодействовать
6) рекомендую статьи DI HALT'а - там все с меги16й начинается, и объясняется на уровне ассемблера.
Интересно а можно как-то вместо задержек времени, например указывать частоту в герцах?
думаю так для разработки некоторых устройств было бы удобнее
функция delay() замораживает микроконтроллер,то есть цикл while приостанавливается и ничего не делает,на время равное аргументу в скобках delay().Но в данном микроконтроллере есть три таймера и модуль прерываний для этих таймеров,все эти модули могут считать и вызывать какие-нибудь события,не зависимо от того ,что происходит в основном цикле программы.
Для функций смены одного/нескольких бит хорошо подходит команда XOR , в вашем случае PORTB=PORTB^0b11111111
P.S. переходите на программирование в среде Arduino IDE, там все на C++, а также можно юзать дешевые платы Arduino NANO, которые функционируют на тех же мегах от ATmel, но там уже будет вся необходимая обвязка микроконтроллера, такая как квацевый генератор и прочее. А заливать программу там можно вообще без программатора, через USB, за счет того что там используется загрузчик, прошитый в микроконтроллер. НО если есть желание можно и через программатор заливать программу в контроллер, правда в этом случае загрузчик вшитый в микроконтроллер будет утрачен, т.к. вместо него запишется ваша программа.
Лучше просто переходить на готовые платы, типа китайских Arduino nano/mini/micro - будет дешевле, чем отдельный микроконтроллер. А среда Arduino IDE слишком упрощенная. Можно продолжать сидеть на AVR Studio - там можно и с ассемблером разобраться, и дебаг есть (в отличии от Arduino). И если уж на что-то переходить, то на Visual Studio Code с PlatformIO - это будет и нормальный IDE с дебагом, и все возможности библиотек ардуины, и возможность писать один и тот же код под AVR, STM32, ESP8266/ESP32, Raspberry Pi...
@@ІванКлимчук-х2ф я так и написал
@@caeli5532 вы написали "переходите на программирование в среде Arduino IDE", чего я как раз категорически делать не рекомендую, после серьезных вещей типа АВР студии лучше переходить на PlatformIO
@@ІванКлимчук-х2ф смотрел я этот PlatformIO, честно говоря геморрой тот еще и это с учетом моего опыта в программировании, а про людей БЕЗ опыта вообще молчу.
Caeli ну на вкус и цвет... Мне platformIO очень даже зашло, может просто опыта больше. К тому же когда ты работаешь под linux или macos, а винду видишь на виртуальной машине или через удаленный доступ - альтернатив platformIO мало. Пробовал решения на базе eclipse и idea - там все еще печальней. Ну и не ставить же ради хобби винду на мак? :)
#define F_CPU не задает частоту ядра, это определение для компилятора что ядро работает на этой частоте. Для работы delay как раз используется )
Артем я сына запру в комнате с твоим каналом, если он родится, продолжай в том же духе.
Артём, спасибо за ваши видео. Очень точно, быстро и интересно! Вопрос к вам, возможно ли сделать видео про самодельную, электродную микро сварку?
Здравствуйте а где можно обучиться с нуля программированию ?
Артём ознакомься с визуальной средой программирования, flprog, россиянец её делает.
Есть каналы популяризаторы "ключ к ардуино" и "arduinoprom"
Объясни Артем зачем ты когда на пороге 21 год выбрал атмегу?
Через студию можно тоже программировать мк через lpt port
Надо было сделать последовательное включение светодиодов было бы более наглядно).
Я думаю стоить заморочиться и собрать передатчик и приемник на МК. Зато фиксированная частота. Если сигнал подать через фильтры и добиться синусойды, то,наверное, можно будет промодулировать
Есть же синтезаторы частоты (PLL). Разве синусоиду можно будет получить на 8-bit микроконтроллере? По-моему нужно использовать 16-bit.
@@koteotake не важно можно или нельзя. Главное нужно попробовать, если нет кардинального "препятствия" (причины). У Вас есть причина, по которой нельзя получить синус определенной частоты от 8 бит. МК? генератор синуса можно на одном транзисторе построить, я уж молчу про МК)) Примерно такой позиции я придерживаюсь..
@@АндрейСоломенников-п2ы Разве на 8-bit есть синусоида? Тогда бы на Спектрумах и Денди был канал с синусоидой, но там только меандры, тругольники и шумы. Некий синус можно получить пропустив меандр через фильтр... Изначально такой микроконтроллер не должен его уметь генерировать.
@@koteotake так я и говорю про фильтры - из меандра в синус
Если без модуляции, да с внешним кварцем - максимум чего можно добиться - это 8MHz (и то используя таймер, с отключенным прескаллером). Если добавить модуляцию, например FM - то это будет мегагерц и меньше. В обратную сторону - т.е. принимать и демодулировать - все намного сложнее, одним МК тут не отделаешься, придется делать аналоговую часть.
Вот если взять esp8266 или esp32, там мощности хватит чтоб генерировать валидный ТВ сигнал (см. каналы Bitluni и CNLohr), хотя опять же в качестве приемников их можно использовать разве что для wifi и bluetooth
Какие порты можно использовать для подключения светодиодов?
Любые кроме VCC , GNd и т п. так же выводы для внешнего кварца закреплены для запуска некоторых чипов .
Проще микроконтроллера не нашлось? Типа Меги8
Ну всё, пропал парень !
MOSI /MISO (Master Out Slave In, Master In Slave Out)
#include avr.h Директива включить (#include) в проект файл (avr.h) с заголовками (.header) в котором как правило назначаются (#define) основные глобальные константы и определения.
DDRB (DoubleDataRate) оперативная память (ДиДиАрБи) ...откуда ДэДэАйБи?
Здается вы не туда полезли, не знаю чем вас не устраивает среда програмирования Arduino, допустим Вам в кайф изучать програмирование регистров/таймеров МК, но какой смысл голый МК брать, за те же деньги покупаете
Arduino плату, стираете прошивку - распаяная макетка готова...
...Похоже, что именно так были рассчитаны интервалы времени (на аналогичном контроллере) очередности подрыва зарядов в самых известных зданиях мира..(((
Не особо шарю за прошивку голых МК, но разве то что автор называет вывод МОСЛ, называется не МОСИ ?
И***ь в коментах "про кодеры" собрались, которые тыкают типа: бро да ты опоздал, да ты чееее!. - Ну да м***ь, сейчас уже все рождаются со скилом "ардуинщик80lvl", да? Едва увидев видос где промелькнул AVR камушек, так сразу серют байки про ассемблер.
Артем 83, продолжай в том же духе, без ардуино-мандуино. С твоими знаниями в электронике да еще теперь микроконтроллеры. Короче, я тебе желаю всего хорошего.
Где подключенный кварц, или внутри
Очень большая просьба, давайте, пожалуйста ссылки на "железки" которые мелькают в видео.
Он не рекламирует
@@UK8CFT так не ради рекламы, для пользы ради.
Смотри на алишке, там все это есть. Читай отзывы и заказывай.
А на 16 -ю есть варианты ?????
Класс! «Краткость - сестра таланта».
Что на ней ещё можно замутить?
следующий код должен быть "бегущие огни"
Андрей не настоящий или из прошлого! Снимает ролики про атмегу, вместо STM32, уточняет размер файла 11.1 мб (видимо юзает диал-ап или адсл). Не удивлюсь что это искусственный интеллект видосы снимает и самообучается!
Не, есть видео, где он косит траву лопатой в поле.
Интересно, но мне кажется подпаиваться к ножкам - это извращение. Неужели нельзя было сделать через панельки и пины аккуратно?
Ардуино отдыхает =)
Atmega32... 2020 год.... может, конечно, если где-то завалялся такой МК и есть желание, то и стоит для себя что-то на нем сделать.. но начинать и учится на этом железе как по мне бред.. ладно еще ардуина, чтобы узнать что такое микроконтроллер и там "космос" примеров.. Есть же ST на любой вкус и цену! и при этом даже, если человек начинающий, то не нужно боятся STM! есть куча примеров и на крайний случай STM CUBE, если SPL+CMSIS тяжело дается. + что у stm8, что stm32 есть нормальный отладчик
Ахренеть. Я это вижу в 2020 году.. я ничего не напутал? Автор не запоздал лет этак на 20?
Спасибо! Всё никак не доберусь до C++
Єтот С++ или что там такое очень на jav-у похож
Я малость не догоняю.Есть же программы сьемки видео с экрана.
Мисо и моси (мастер ин, слэйв аут и мастер аут, слэйв ин)spi интерфейс
Обычно изучение AVR начинают с ассемблера...
pic перспективней, забей на diy-щиков
Можно светомузыку сворганить
А где фьюзы?
Flowcode попробуй
Flprog гораздо всё проще наглядней и понятней
Это Mosi miso. Master in slave out
Артем, ты в школе немецкий штоле учил???