Arduino Pro Mini переходим к адресу загрузчика во Flash загрузка sketch Upload code soft reset
Вставка
- Опубліковано 23 лип 2019
- переходим к адресу загрузчика во Flash 0x7800 где (Serial BOOT LOADER).
В начале загрузки sketch, на Arduino всегда необходимо делать RESET / перезагрузка / сброс.
Заменим ручную перезагрузку, на программно.
-----------------
Программно аппаратная перезагрузка.
Перед началом загрузки sketch, еще до RESET, на выход Serial TX поступают данные.
--
48
32
48
32
48
32
--
ASCII Code - table.
48 = Zero / 0.
32 = Space / пробел.
--
сигнал DTR (Data Terminal Ready).
_____________.
_____________.
RESET / перезагрузка / сброс - по DTR сигналу.
_____________.
скорость загрузки sketch, например у Arduino Pro Mini (57600).
soft reset программная перезагрузка
Arduino Беспроводная загрузка sketch Pro Mini Wireless Upload code Bluetooth HC-05 Своими руками
• Arduino Беспроводная з...
Arduino Pro Mini загрузка sketch Upload code soft reset программная перезагрузка Своими руками
• Arduino Pro Mini загру...
void setup() {
Serial.begin(57600); // скорость загрузки sketch, у Arduino Pro Mini (57600).
}
void loop() {}
#define GO_TO_ADRR_FLASH_MEMORY_BOOT_LOADER asm("JMP 0x7800")
#define START_UPLOAD_SKETCH_COMMAND_1 48
#define START_UPLOAD_SKETCH_COMMAND_2 32
byte oldInChar;
void serialEvent() {
while (Serial.available()) {
register char inChar = Serial.read();
if (inChar == START_UPLOAD_SKETCH_COMMAND_2 && oldInChar == START_UPLOAD_SKETCH_COMMAND_1) { // поступил запрос на загрузку sketch
while (1) {
GO_TO_ADRR_FLASH_MEMORY_BOOT_LOADER; // переходим к адресу загрузчика во Flash 0x7800 где (Serial BOOT LOADER)
}
}
oldInChar = inChar;
}
}
Дмитрий здравствуйте. Как и все здесь, долго ждал ваших видео, интересных проектов. Но последние два ролика слабоваты. Вы можете гораздо лучше. Надеюсь, к Вам вернется муза и вместе с ней, сделаете годный контент. Снимите отдельный ролик про себя, думаю многим будет интересно послушать. Кто за, ставьте лайки, чтобы поднять этот комментарий в топ.
Боль души! я сам хочу выкладывать видеоуроки на тему электроники и программирования! я обожаю это делать, Это моя стихия.
Не всё так просто, есть уже готовые проекты, но выложить я их не могу!
Вспомните мой последний видеоурок, связанное с компьютерным зрением, его удалили! - осталась только копия скачанная с Ютуба, пришлось перезалить в плохом качестве.
Иногда, наедине с самим собой, мечтаю о возможности снова выкладывать обучающие видеоуроки.
тему электроники и программирования, взяли под строгий контроль.
остается только плакать...
молитесь - может ситуация изменится.
Dmitry OSIPOV ваше видео могли удалить из-за использования музыки, без разрешения правообладателя. Например играло радио на заднем фоне. Зачем UA-cam удалять уникальный контент, который привлекает пользователей? Тут дело не в том, что UA-cam хочет, чтобы все тупели, а в чем-то другом. Может кто-то пожаловался на видео с нескольких аккаунтов. Поэтому выкладывайте новые видео и не переживайте. А оригиналы видео храните на HHD и облаке.
@@d36073 здравствуйте Дмитрий, очень полезные уроки. Но если есть проблема с ютубом, то почему не сделаете свой сайт, где все видео можно дублировать?
@@d36073 Дмитрий. можно создать сайт за пределами РФ и лить туда видосы, чтобы никакой контроль не мог дотянуться , собственно и закон вы этим не нарушите.
Где Вы так долго пропадали?Полезное видео спасибо за урок.
ооо, снова Дмитрий радует видосом! активно плюсую!
Слава Богу ты пришел!!! Лайк даже не глядя.
Да ну нафиг!!! 😮С возвращением! 😊
@Андре Сландовский Боль души! я сам хочу выкладывать видеоуроки на тему электроники и программирования! я обожаю это делать, Это моя стихия.
Не всё так просто, есть уже готовые проекты, но выложить я их не могу!
Вспомните мой последний видеоурок, связанное с компьютерным зрением, его удалили! - осталась только копия скачанная с Ютуба, пришлось перезалить в плохом качестве.
Иногда, наедине с самим собой, мечтаю о возможности снова выкладывать обучающие видеоуроки.
тему электроники и программирования, взяли под строгий контроль.
остается только плакать...
молитесь - может ситуация изменится.
@Андре Сландовский нет там никакой мистики, насколько я знаю страйк там прилетел по авторским, мол авторам той разработки не понравилось что Осипов взял их работу и выдавал за свою... если бы он соблюдал минимальную этику и указывал что и откуда он берет, проблем бы скорее всего не было.
Дима, рад тебя снова видеть, с новыми идеями и уроками!
Спасибо огромное. Появляйся почаще. Не пропадай больше так надолго! Делай хотя бы анонсы.
Дмитрий здравствуйте мы так рады что Вы снова с нами !!! Рад что Вы справились со своими переживаниями ! Так держать !!! Не покидайте нас пожалуйста.
Максим Коновалов , надеюсь ведь понимаешь что это не от него зависит!? Он никогда не покидает нас!
Урааа !!! Долго вас ждал
В следующем видео расскажи как живёшь, куда пропадаешь.
Каждое новое видео - как праздник.
Лайк, с разу за то, что снова ты постиш свои ролики!
Спасибо Дмитрий за урок, я не знал этих секретов. И с возвращением!!!
Дмитрий! Спасибо, что вы снова с нами! Посмотрите комментарии - как много людей обеспокоены вашим длительным отсутствием! Будьте здоровы!
Дима, сейчас народ делает 3Д принтеры и CNC станки. Пользуются программами марлин, грбл и др. Шаговый двигатель - сердце этих устройств. Я пробовал сам поделать программы для управления движками. Библиотеки в основном никакие. Самая крутая AccelStepper. Но врубиться в нее не просто, примеров мало. Интересно не просто покрутить моторчик. Нужно позиционирование, контроль положения, ускорение и замедление, ориентирование процесса движения по концевикам. Давай, у тебя есть талант!
Здраствуйте из Болгарии!! Я очень многа рад что Вий здесь. Простите для ошибки! Вий очень популярен в Болгарии :)
Дмитрий, с возвращением! Не пропадайте больше.
Ты жив ещё ? )))
Рад новому видео. Лойз не глядя )
Пробовал ставить второй лайк (уже после просмотра) - нифига. Урок интересный и полезный
Приветствую Вас Дмитрий ! Очень рад что не забросили канал . Я понимаю что всегда не хватает времени .
Дмитрий! Снимай видосы чаще, очень необходимо и интересно. Проблемы с временем и финансами есть у всех, но качественные видосы по нужной теме с доступными пояснениями получаются у тебя. Держи лайкос.
Как долго мы Вас ждали!!!
Дмитрий, не теряйтесь больше. Пожалуйста
На мой взгляд, проблемы в контентом могут быть из за того, что выпуски Дмитрия кому-то мешают. Дмитрий делает уникальные (не трындит как другие, повторяя друг друга как зажечь светодиод или смотрите, что я сделал). Он учит и делится наработками своими. Мне сдается, что он опасен тем кто своими наработками ТОРГУЕТ, - Чип и Дип, Амперка и иже с ними. Ибо их модули нам не интересны, благодаря Дмитрию мы можем сами и порой даже лучше!
С возвращение!
Спасибо за интересное видео!
Спасибо что живой! Ждем новых видео. Хотели бы узнать ваше мнение о программе Flprog и платах ESP.
Здравствуйте рад вас видеть
Привет ! Куда исчез ???? Рады твоему возвращению !!!
Спасибо за видео, давно не виделись :-). Пора уже ардуино леонардо осваивать ;-). По данному материалу: в идеале все же сделать через прерывание, далее оформить отдельным файлом либо библиотекой, для более простого импорта данного куска кода в остальные скетчи.
С возвращением, Дмитрий!!! Я верил в Вас.
Круто!!!!
Дмитрий, хорошего творчества!!!
Спасибо. Интересно. До этого всегда шил через spi программатором.
Ух ты! Димка вернулся! щас он всех всему научит😏
Рад вашему новому видио. Переживал (Киев) куда Вы так на долго пропали.
С возвращением!!!!!
С возвращением.
Давно ждал видео от Вас)
Сто лет, сто зим!
Категорически приветствую!
Спасибо!
Он живой!
Тут ардуино спрашивала , не видел ли кто Осипова!
Дмитрий надеемся ты вернулся к нам на долго
Живой чувак! Давай не теряйся,просвещай!
Человек загадка.
Лайки Ничего загадочного нету! Просто человек не хочет сойти с ума. Учиться программированию, самостоятельно! Так каждый человек поступает когда времени на то посветить есть долгие годы, а может и оставшиеся до конца. Я рад ему и всегда благодарен за знание!
Человек вернулся!
спасибо тебе
ты снова снами )))
спасибо
👍
ого!
Здравствуйте Дмитрий !!!!!
Дмитрий, с удовольствием смотрю ваши видосы, и нахожу в них много интересного! Не могли бы вы обратить свое внимание на платы на esp8266! Я сейчас пытаюсь строить умный дом на них, а точнее на контроллере wemos d1 mini и прошивке esp easy! Вещь просто бомбовская, но к сожалению очень мало примеров в интернете и то что хочется реализовать не всегда получается! А платы недорогие и универсальные! Обратите на них свое внимание, пожалуйста!
о нормас)
Где вы были 👍👍👍👍👍👍
Дмитрий, привет. У меня вопрос по работе с ридерами RFID-ключей (правда, на 125кгц):
собрал замок, использовав вашу идею, но применив вместо 13,56МГц 125кГц. Проблема, собственно, в том, что при чтении ключа, сработка происходит не 1 раз, а от 2 до 5 раз и ни чего не могу с этим поделать...
Любезный, где вы добываете такие палёные про-мини,
мои шьются на-раз, а конденсатор на ресет штатно запаян.
Все загрузчики, и в интеле и прочем, по умолчанию в верхних адресах памяти, иначе компилировать будет очень весело)
Здравствуйте Дмитрий. Посмотрев это видео возник логический вопрос. Если не используется физический пин ардуино отвечающий за перезагрузку то логично было бы предположить что таким способом можно прошивать чипы в которых фьюзами отключен пин перезагрузки и используеьтся как пин ввода-вывода. Поправьте меня если я ошибаюсь.
Дима, а будет ли что нибудь про модули ESP8266 (или ESP32) или про микроконтроллеры STM ?
Куда пропали?
Загрузчик в мегах может быть иного размере, не обязательно 2кБ, чтобы начинаться с адреса 7800, объём флэшки может быть разного размера и адрес, опять же, будет иной - загрузчик всегда лежит на дне памяти у меги. Но процессор после сброса начинает выполнять код с адреса ноль, а по адресу ноль лежит инструкция jmp загрузчик.. Может быть, я уже забыл и в мегах фьюзами задаётся адрес старта?
Можете рассказать про pc speaker? Буду рад
А в Меге2560 по какому адресу перейти?
а где вызывается этот кусок кода? setup и loop пустой
Lama tidak muncul, salam dari indonesia
купить на алиэкспресс можно сдесь
Arduino Pro Mini
letyshops.com/r/aliexpress-o9kzw1vrfa8gg
модуль
letyshops.com/r/aliexpress-o9kzw1vrgmsco
Наверное это не он . Дмитрий когда ему задавали вопрос об обезателно отвечал ,я тоже запомнился
Сколько лет сколько зим
Как переделать скетч на радио пульт 433 МГц. Сайт амперка шторы жалюзи.
Вот скетч
// Мы будем использовать библиотеки для работы с ИК и с сервоприводами #include #include // Определим номера используемых пинов #define RECV_PIN 2 #define SERV_PIN 3 #define BUZZER_PIN 4 // Определим тип «действие» enum Command { CMD_NONE = 0, CMD_OPEN = 1, CMD_CLOSE = 2 }; // Создадим объект для пользования ИК-библиотекой IRrecv irrecv(RECV_PIN); decode_results results; // Создадим переменные, которые будут хранить коды кнопок пульта unsigned long codeOpen = 0; unsigned long codeClose = 0; // Определим переменные для хранения полученной команды и времени её получения unsigned long cmdStartTime; unsigned char cmd; // Создадим объект для управления сервоприводом постоянного вращения Servo srv; // Из-за особенностей реализации нельзя использовать библиотеку IRremote // вместе с функцией beep (они используют одно и тоже прерывание). Чтобы // справиться с этой бедой мы, не используя прерываний, реализовали свою версию // функции beep. void beeep(int pin, int freq, unsigned long duration) { unsigned long start; // Переводит пин в выход pinMode(pin, OUTPUT); // Запоминаем момент начала выполнения start = millis(); // В течение duration миллисекунд пищим while (millis() - start < duration) { // Частота писка определяется паузами между изменениями состояния пина digitalWrite(pin, HIGH); delay(1000/freq/2); digitalWrite(pin, LOW); delay(1000/freq/2); } // На всякий случай переводит пин обратно в режим чтения pinMode(pin, INPUT_PULLUP); } // Функция "обучения" устройства (запоминания кодов кнопок открытия/закрытия) void learn(void) { // Ждём получения корректной команды // (условие окончания цикла находится в его теле) while (true) { if (irrecv.decode(&results)) { // Получили какой-то код. Сообщим библиотеке, что мы обработали событие. irrecv.resume(); // Пропускаем коды короче 16 бит (наши пульты давали коды 16 или 32 бита, // остальные считаем ошибочными) if (results.bits >= 16) { // Сохраняем пришедший код как код на открытие codeOpen = results.value; // В знак подтверждения пикаем beeep(BUZZER_PIN, 500, 100); break; } // Ждём 100 мс, чтобы пропустить случайный приём пачки одинаковых кодов delay(100); } } // На всякий случай ждём 200 мс (пользователь явно быстрее не будет на кнопки // нажимать) delay(200); // Таким же методом принимаем второй код (на закрытие) while (true) { if (irrecv.decode(&results)) { irrecv.resume(); if (results.bits >= 16 && results.value != codeOpen) { codeClose = results.value; beeep(BUZZER_PIN, 500, 100); break; } delay(100); } } } // Функция инициализации устройства void setup(void) { // Запускаем библиотеку IRRemote irrecv.enableIRIn(); // Инициализируем команду (не было команды) cmd = CMD_NONE; // Сообщаем пользователю, что мы запустились тройным пиком beeep(BUZZER_PIN, 500, 100); delay(100); beeep(BUZZER_PIN, 500, 100); delay(100); beeep(BUZZER_PIN, 500, 100); delay(100); // Запускаем процедуру "обучения" learn(); // Пищим в знак окончания процедуры обучения beeep(BUZZER_PIN, 2000, 1000); } // Пуск сервопривода постоянного вращения void start(void) { srv.attach(SERV_PIN); srv.write(cmd == CMD_OPEN ? 0 : 120); } // Остановка мотора void stop(void) { // Самый простой способ остановить серву постоянного вращения - отсоединиться // от неё srv.detach(); } // Рабочий цикл программы void loop(void) { unsigned long codeValue; int codeLen; // Запускаем сканирование команды по ИК if (irrecv.decode(&results)) { // Сообщаем библиотеке, что приняли её информацию irrecv.resume(); // Получаем код и длину кода codeValue = results.value; codeLen = results.bits; // Отсеиваем неправильные коды if (codeLen >= 16) { // Если пришёл код на открытие и на данный момент привод не крутится в // противоположную сторону, включаем открытие. if (codeValue == codeOpen && cmd != CMD_CLOSE) { cmd = CMD_OPEN; cmdStartTime = millis(); start(); } else if (codeValue == codeClose && cmd != CMD_OPEN) { // Если пришёл код на закрытие и на данный момент привод не крутится в // противоположную сторону, включаем открытие. cmd = CMD_CLOSE; cmdStartTime = millis(); start(); } // Если приходит команда на резкую смену направления вращения - спасаем // серву от смерти, игнорируя такую плохую команду. } else if (codeLen == 0 && (cmd == CMD_OPEN || cmd == CMD_CLOSE)) { // Некоторые пульты при удержании кнопки в нажатом состоянии посылают код // нулевой длины. Будем считать это повтором команды. cmdStartTime = millis(); } delay(100); } // Здесь мы выключаем привод через 500 мс после последней полученной команды if (cmd == CMD_OPEN || cmd == CMD_CLOSE) { if (millis() - cmdStartTime > 500) { cmd = CMD_NONE; stop(); // Дождёмся полной остановки привода delay(1000); } } }
wiki.amperka.ru/projects:irjalousie
а зачем програматор если можно взять нано подрубить и прошить две платы одним и темже скетчем?
Здравствуйте! Куда пропали?
Если ардуино мега РЖД подключить к вам по кабелю Lighting то можно получить генеральный план по которому можно стать участником группы компаний гениев
Дима, привет! Куда пропал?!
esp8266 OTA
🌹😎🤩🤩 can you writing and sharing arduino +lcd+menu+multilingual +Russian/English tutorial please iam not find in the internet project
линукс на есп8266 реально