Урок 27. EEPROM настройки | Часть 1 | Программирование микроконтроллеров AVR

แชร์
ฝัง
  • เผยแพร่เมื่อ 12 มิ.ย. 2019
  • Рассмотрены настройки EEPROM микроконтроллеров AVR. EEPROM - это энергонезависимая память микроконтроллера, которая по принципу действия аналогична flash памяти (как у обычной флешки), что означает данные будут сохраняться даже при отсутствии питания. Наиболее наглядный пример EEPROM памяти - это настройка радиостанции магнитолы. После соответствующих настроек нужной радиостанции при отключении питания, а затем его включении магнитола снова будет воспроизводит запомненную станцию. Для настройки EEPROM памяти микроконтроллеров AVR применяются всего три регистра: регистр адреса EEAR, регистр данных EEDR и регистр контроля EECR. В первой части видео подробно рассмотрены принцип организации энергонезависимой памяти EEPROM и настройки соответствующих регистров.
    Ссылки на покупку полезных элементов, необходимых для успешного изучения программирования микроконтроллеров AVR.
    Сначала рекомендую получить ВЫСОКУЮ СКИДКУ НА ВСЕ ПОКУПКИ: ali.pub/3mulxb
    Микроконтроллеры ATmega8: ali.pub/3muk7a
    Программатор AVRASP: ali.pub/3mtqa2
    Программатор AVRASP в хорошем корпусе: ali.pub/3mtqxz
    Программатор STK500: ali.pub/3mtril
    Программатор TOP3100, который программирует ВСЕ: ali.pub/3mtsgt
    Макетная плата: ali.pub/3mtvcu
    Удобная макетная плата: ali.pub/3mtvyt
    Серьезная макетная плата: ali.pub/3mtx4m
    Гибкие перемычки для макетной платы: ali.pub/3mtxj0
    Перемычки в пенале 14 видов 140 штук: ali.pub/3mtxtw
    Набор резисторов 600 штук, 30 номиналов по 20 штук: ali.pub/3muaey
    Набор светодиодов разных цветов 300 штук: ali.pub/3mubp1
    Набор транзисторов: ali.pub/3muc1h
    Семисегментные индикаторы: ali.pub/3muisx
    Тактовые кнопки: ali.pub/3muj92
    #EEPROM #НастройкаEEPROM #AVR #ATmega8

ความคิดเห็น • 109

  • @user-li4xh9fi6w
    @user-li4xh9fi6w  5 ปีที่แล้ว +3

    Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/
    Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/

    • @maximesh17
      @maximesh17 5 ปีที่แล้ว +2

      Очень дорого как для студента. А что будет с контентом на канале?

    • @user-li4xh9fi6w
      @user-li4xh9fi6w  5 ปีที่แล้ว +3

      Будет продолжение.

    • @user-nd1hr7qu8d
      @user-nd1hr7qu8d 5 ปีที่แล้ว +3

      @@user-li4xh9fi6w Будет ли просто видеокурс? Достаточно интересно, Смотрю просто для саморазвития, но купить готов.

    • @user-ig8of4ql3w
      @user-ig8of4ql3w 3 ปีที่แล้ว

      Удачи тебе и в деле и в бизнесе

  • @NK-pg6im
    @NK-pg6im ปีที่แล้ว +6

    Дима, какой ты молодец. Я пытался изучать данные темы самостоятельно, по книгам, но увы - мозгов не хватает. Ещё лет 20 назад. Но всё бесполезно. Сейчас хоть что-то стал понимать. Спасибо тебе, продолжай в том же духе.

  • @B5U8
    @B5U8 ปีที่แล้ว +3

    Компилируем-не дышим-ошибок нет. Какое это счастье!

  • @artmasterio1036
    @artmasterio1036 5 ปีที่แล้ว +17

    Продолжай снимать, не бросай этот канал. Спасибо!

  • @saidgusainov6252
    @saidgusainov6252 5 ปีที่แล้ว +11

    Спасибо, как всегда все четко, и наконец то UART и даташиты, спасибо вам большое, я на ваших видосиках много чему научился, вот добрались и до EEPROM.

  • @user-yz2my6kp5i
    @user-yz2my6kp5i 5 ปีที่แล้ว

    Лекциите са на изключително високо, професионално ниво. Изложението е ясно, кратко, точно ! Подходът е академичен! Благодаря!

  • @user-bg6db8co5b
    @user-bg6db8co5b 5 ปีที่แล้ว +1

    Доступно и понятно, спасибо тебе друг !

  • @m215ak
    @m215ak 5 ปีที่แล้ว +2

    Ждём с нетерпением продолжение.

  • @sharkdevil3154
    @sharkdevil3154 5 ปีที่แล้ว +2

    Шикарные видео. Спасибо!!!

  • @corytrevor8312
    @corytrevor8312 2 ปีที่แล้ว

    Это прям чудо какое то!! спасибо за ваш труд!

  • @user-rd6id1uy3t
    @user-rd6id1uy3t 3 ปีที่แล้ว +3

    Молодец..... Спасибо добрый чоловек дай бог тебе здоровья...

  • @user-hb9mf7qf2e
    @user-hb9mf7qf2e 5 ปีที่แล้ว +2

    Познавательно, но очень нужна вторая часть))

  • @antonpetrov2546
    @antonpetrov2546 5 ปีที่แล้ว +2

    Наконец-то новое видео! Ура!

  • @mikhailkondratyuk8041
    @mikhailkondratyuk8041 หลายเดือนก่อน

    Супер канал, все саое нужно ничего лишнего!

  • @user-wq3py9ml2h
    @user-wq3py9ml2h 5 ปีที่แล้ว +1

    Спасибо тебе за уроки

  • @Siberia55rus
    @Siberia55rus 5 ปีที่แล้ว +1

    Ну наконец, новое видео.

  • @Pasharonov
    @Pasharonov 5 ปีที่แล้ว +1

    Молодчага !
    Так держать !!!

  • @engineer39notebook
    @engineer39notebook 4 ปีที่แล้ว

    Не забрасывайте канал, пожалуйста.

  • @AcrossSmart
    @AcrossSmart 3 ปีที่แล้ว

    просто афигенно объясняешь,

  • @Old_GaM
    @Old_GaM 5 ปีที่แล้ว +4

    Спасибо за Ваши видео!
    Насчёт красоты кода.
    PORTB=z; EEPROM_write(0x00,z); повторяются и в if и в else, можно просто один раз написать после if и esle PORTB=z; EEPROM_write(0x00,z); так как в при любом исходе условия производится передача данных в порт и запись в память (переменная z, порты и адреса и в if и в else одинаковые)
    Точно также с zz;

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      После if и else? Это куда? В while(1)? А сколько раз можно в eepom записать? 100к? При частоте 8MHz сколько раз за минуту произойдёт запись. Вы хотите eepom мк убить.

    • @Old_GaM
      @Old_GaM 4 ปีที่แล้ว +1

      @@splinterkab9007 Почему в while? В первом if останется (после проверки нажатия кнопки). Мы проверили, что кнопка нажата, дальше сравнили z

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      @@Old_GaM ок понятно. Сразу не дошло куда запись в память предложено вынести. Сонный был. Он действительно в своих видео усложняет иногда. Где можно проще и за один раз, ставит дополнительный if. Хотя для начинающих думаю самое то.

  • @Dmitrii82
    @Dmitrii82 5 ปีที่แล้ว +3

    Ну наконец то

  • @microsoft8792
    @microsoft8792 2 ปีที่แล้ว

    Был приятно удивлен, увидев что в Протелусе тоже сохраняются данные в EEPROM.

  • @_skydev
    @_skydev ปีที่แล้ว

    Спасибо за уроки. Хочу подметить возврат нуля это как раз таки возврат чего то.

  • @mosfet7623
    @mosfet7623 4 ปีที่แล้ว

    вауу.. маладец очень полезно

  • @Yarikkasl
    @Yarikkasl 5 ปีที่แล้ว

    Когда примерно ожидать вторую часть ? Очень бы хотелось посмотреть, а то у меня не работает что то нечего:(

  • @dimmid4109
    @dimmid4109 5 ปีที่แล้ว +5

    Ура ура ураааа

  • @igorsukharev6175
    @igorsukharev6175 5 ปีที่แล้ว

    Добрый день! А вы не планируете случайно сделать уроки по ATmega ARM - ATSAM...? Было бы очень здорово!

  • @user-lb7yc7ms2c
    @user-lb7yc7ms2c 11 หลายเดือนก่อน

    Здорова, Дмитрий. Сделай видос как управлять микроконтроллером с пульта ДУ инфракрасного . Один видос всего про программирование ещё

  • @pc.languageteacher8448
    @pc.languageteacher8448 3 ปีที่แล้ว

    Супер

  • @magadan4626
    @magadan4626 5 ปีที่แล้ว

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

    • @user-li4xh9fi6w
      @user-li4xh9fi6w  5 ปีที่แล้ว

      На сайте есть программа и описание курса.

  • @We-BEER
    @We-BEER 5 ปีที่แล้ว +2

    Хорошим делом занимаетесь, несете знания в массы, спасибо. Но прошу, учите писать нормально... Колдовали с EEPROM чтобы запомнить значения, но по факту после нажатия кнопки они сбрасываются в 0, потому что считанное из памяти надо не в порты писать, а в переменные. Весь блок "if (z 10) z=0;", второй строкой запись значения в EEPROM, всё.

    • @AlexRootx
      @AlexRootx 5 ปีที่แล้ว

      тоже непонятен двойной вызов WRITE.

    • @Artur-sparf
      @Artur-sparf 4 ปีที่แล้ว

      Переписал код по вашему методу. Заработало, но не без сложностей.

  • @user-wu3je3co6u
    @user-wu3je3co6u 4 ปีที่แล้ว

    "Я пошёл другим путем" в сторону программирования контроллеров. Начал в возрасте 54 лет с самого примитивного устройства : программируемого реле ПР200 компании "ОВЕН автоматика". И ничуть не пожалел. Получилась система "от простого - к сложному". Это реле позволяет программировать на самом простом уровне - на уровне функциональных блоков в среде "ОВЕН ЛОГИК", которая легко быстро и бесплатно скачивается с сайта производителя. Именно такой контроллер я рекомендую начинающим ("чайникам"). Программируемое реле можно не покупать, так как в программе имеется симулятор , который проверяет правильность написания программы. Понятие входа-выхода, цифрового, аналогового сигнала, счетчиков, реле времени, генераторов сигналов, переменных четырех видов, сетевых переменных и прочее - все это легко понять любому "хорошисту" восьмикласснику.
    + бесплатное быстрое обновление программы, + аксессуары.... Само программируемое реле стоит почти 6 000 руб. Зато там есть программируемый дисплей, куда можно выводить информацию, кнопочки управления, и прочие удовольствия начинающего программиста.
    От этой простой программы я легко перешел в СoDeSys V2.3 СoDeSys V3.5. и получил настоящее удовольствие в программировании настоящих контроллеров компании "ОВЕН Автоматика". Вся документация русифицирована, есть отличная тех поддержка.
    Мой совет - начинайте с оборудования" ОВЕН Автоматика!"

  • @kumelektronik340
    @kumelektronik340 2 ปีที่แล้ว

    Добрый день. Где можно найти информацию о Ваших видеокурсах. С уважением к Вам Александер

  • @Nikost120
    @Nikost120 5 ปีที่แล้ว

    Буду Ждать данные Курсы) Тем более в Большом количестве Имеются Atmega 128

    • @TrasherFCR
      @TrasherFCR 2 ปีที่แล้ว

      Вот не понимаю откуда у людей берутся просто так всякие микросхемы?

  • @sharkdevil3154
    @sharkdevil3154 5 ปีที่แล้ว

    Хотелось бы урок по управлению атресными rgb светодиодами. Пример такой, линейка допустим 10 светодиодов в середине 4 горят красным. При нажатии 1-ой кнопки остальные загораются красным. При нажатии 2-ой кнопки 4 которые горели красным начинают бегущей строкой гореть синим.

  • @hifiexperience110
    @hifiexperience110 3 ปีที่แล้ว

    Добрый день, не знаю где вам написать, поэтому решил тут.
    Для того, чтобы прошить к примеру микроконтроллер xmos, для получения прошивки нужно иметь спец лицензию или может любой скачать ?
    В ЦАПе вышел из строя стабилизатор, с которого шло питание на микроконтроллер xmos, стабилизатор заменили, питание заходит 1v, 3.3v с другого стабилизатора, устройство не обнаруживается по usb, остальные входы прекрасно работают.
    Вам доверяю, так бы лучше вам послал бы микроконтроллер для платной прошивки, если это возможно.

  • @Kirillkondratev321
    @Kirillkondratev321 3 ปีที่แล้ว

    Подскажите как подобрать аналог eeprom? У меня стоит на ЭБУ at25080nc на сколько я понимаю 080 это 80кб памяти, соответственно могу ли я впаять на 160кб или ещё больше?

  • @ebjikkolu4757
    @ebjikkolu4757 5 ปีที่แล้ว +1

    Цена вспугнула за курс,больше 11 тысяч .Конечно,хочется некоторые вещи узнать,такие как протоколы данных ..Что ж.Быть может в записи кусками будете продавать

  • @TrasherFCR
    @TrasherFCR 2 ปีที่แล้ว +3

    24:57 Записывать данные с каждым изменением числа, учитывая ограничение записей в EEPROM = 100000 - нерационально.
    Думаю стоит делать отдельную кнопку для сохранения данных.
    И считывать данные только при запуске, а не каждый цикл while (1) 27:09

    • @deffy18
      @deffy18 2 ปีที่แล้ว

      я бы ставил раз в секунду запись) а а чтение - только при старте, нафиг столько раз делать запись..

    • @Bafus1980
      @Bafus1980 2 ปีที่แล้ว +1

      И считывать в переменную а не сразу в порт, а переменную записывать в порт. Сейчас при загрузке логика не корректна. Да состояние светодиодов восстановлено, но переменные то остались в 0.

  • @TrasherFCR
    @TrasherFCR 2 ปีที่แล้ว +1

    .
    12:54 Разве дребезг происходит не во время нажатия???
    .

  • @stepansml6713
    @stepansml6713 ปีที่แล้ว

    А что за долесекундеое потухание при повторном вкл записанных в память?

  • @user-jq6hi6qe1c
    @user-jq6hi6qe1c 4 ปีที่แล้ว +1

    А какие первоначальные данные будут считываться из EEPROM при первой итерации бесконечного цикла while, если мы первый раз запускаем код?

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว +1

      Мусор который там есть.

  • @Lexazlt
    @Lexazlt 4 ปีที่แล้ว +1

    16:59 начало и "// Записываем данные в резистр данных" " // Устанавливаем флаг EEMWE, отвеающий "

  • @Vladimir81109
    @Vladimir81109 2 ปีที่แล้ว

    Если можно,то раскажите доступно ,как работает схема мультиварки рэдмон на сенсорном управлении. Что происходит в схеме от прикосания пальца и т.д.

    • @Valeriy1509
      @Valeriy1509 7 หลายเดือนก่อน

      Бешельме кешельме шайтана-ма!

  • @nosmoking7243
    @nosmoking7243 5 ปีที่แล้ว +4

    я не очень понял по стокам оплаты. Написано оплатившим до 31 июня стоимость курсов составит 180$. В июне вроде 30 дней...

    • @dimdimiych5718
      @dimdimiych5718 5 ปีที่แล้ว +11

      Philip Morris он с нулевого бита считает

    • @technixbul
      @technixbul 5 ปีที่แล้ว +1

      @@dimdimiych5718 ахаха это профессиональное искажение :D

    • @nosmoking7243
      @nosmoking7243 5 ปีที่แล้ว

      настроил таймер счетчик на срабатывание по переполнению а не по совпадению. как раз 31 июня переполниться и после 30 перейдет на 1-е июля. единственное логичное объяснение на мой взгляд.

    • @dimdimiych5718
      @dimdimiych5718 5 ปีที่แล้ว

      Philip Morris он не предусмотрел watchdog timer , в лице нас. Который сработал при ошибке. Но уроки смотреть приятно. Хорошо объясняет

    • @nosmoking7243
      @nosmoking7243 5 ปีที่แล้ว +3

      Я бы сказал что это на данный момент лучший ютуб канал по программированию МК AVR. У автора талант преподносить инфу понятно.

  • @user-ck5ee4mo8b
    @user-ck5ee4mo8b 3 ปีที่แล้ว

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

  • @abdulqadirahmedli610
    @abdulqadirahmedli610 2 ปีที่แล้ว

    Siz pcf2100ct proqramlaya bilərsiniz? İnanmıram bacara bilmərsiniz.

  • @user-jr2wv4nj6x
    @user-jr2wv4nj6x 5 ปีที่แล้ว +15

    Я уже подумал, что ты забросил канал)

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      А он и забросил. Новых видео давно нет.

  • @user-pu7qj6ve1x
    @user-pu7qj6ve1x 5 ปีที่แล้ว +10

    зачем цифры хранить в char ? зачем в цикле каждый раз перечитывать из eeprom? до цикла это сделать нельзя?

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      Unsigned char 0..255. Зачем больше. На порту больше не получить. Всего 8 бит. Считать из памяти можно и до цикла. И хорошо что он запись в цикл не вставил.
      А вот обнуление z и zz он зря делал. Больше 255 не будет. Проще говоря обнуляется само.
      Забыл добавить что число больше 8 бит должно записаться в несколько ячеек.

    • @user-pu7qj6ve1x
      @user-pu7qj6ve1x 4 ปีที่แล้ว +1

      а кто говорит про больше? для цыфр есть свой тип данных, его и надо применять. Из памяти не можно считать до цикла, а нужно, иначе это быдлокодинг, на что я собственно и намекнул.

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      @@user-pu7qj6ve1x а в видео разве не до цикла считывает. Может я смотрел невнимательно. Если так то это лишнее. А для переменных я обычно использую тот тип, который минимально необходим и меньше места занимает. Зачем мне unsigned long если число не больше 100 например.

    • @user-pu7qj6ve1x
      @user-pu7qj6ve1x 4 ปีที่แล้ว

      чтобы сравнивать символы, нужно их сначала преобразовать к порядковому номеру, поэтому эта операция более затратная, чем сравнение чисел. И при чем здесь long? Используй числовой тип данных с необходимой длинной, например byte или word
      P.S. на 27:40 посмотри - считывание внутри цикла

    • @romik5608
      @romik5608 3 ปีที่แล้ว

      Кстати, да. Вполне можно использовать и uint8_t. (восьмибитное беззнаковое целое)

  • @ElliottGrosvenor
    @ElliottGrosvenor 3 ปีที่แล้ว

    На мой взгляд, чтение из еепром в бесконечном цикле излишне. Получается, мы записываем z, zz, и тут же их считываем. Зачем? Ведь данные уже есть в переменных. Я бы сделал чтение один раз при инициализации переменных, там, где им присваивается ноль. Инициализировать z и zz сохраненными в еепром числами и вывести их в соответствующие порты. В цикле только записывать.
    Правда, при самом первом запуске проги в переменные считается "мусор", но это тоже легко решаемый вопрос.

    • @ValeraDXM
      @ValeraDXM ปีที่แล้ว

      А как при первом запуске программы не читать из EEPROM мусор? Ведь контроллер же не "понимает" первый доя него запуск или уже было сохранение данных в память.

    • @ElliottGrosvenor
      @ElliottGrosvenor ปีที่แล้ว +1

      @@ValeraDXM Блин, год прошел. Я уже и не помню, о чем речь, надо смотреть..

  • @user-zl7ve6bm3n
    @user-zl7ve6bm3n 4 ปีที่แล้ว

    спасибо за видео очень познавательно я сделал все что било на видео и у меня видает ошибку (
    Error expected declaration specifiers or '...' before numeric constant eeprom
    Error expected declaration specifiers or '...' before 'z' eeprom
    не понимаю в чем дело
    когда закоментирую функции void EEPROM_write(0x01, zz); и void EEPROM_write(0x00, z);
    тогда компилируется (

    #define F_CPU 1000000L
    #include
    #include
    unsigned char z=0 , zz=0;


    void EEPROM_write(unsigned int address, unsigned char data) //запис даних в еепром
    {

    while(EECR & (1

  • @ivanrusev2270
    @ivanrusev2270 ปีที่แล้ว

    Это внутренний EEPROM/

  • @user-xz9dz3zm8e
    @user-xz9dz3zm8e 4 ปีที่แล้ว

    Ребята не пойму - в даташит написано uiAddress и uiData, а в реальной программе address и data. Я пробовал и так и так - есть разница. Объяснений не нашел. В чем же дело?

    • @Artur-sparf
      @Artur-sparf 4 ปีที่แล้ว

      У меня Attiny2313 - заработало без ui.

    • @user-xz9dz3zm8e
      @user-xz9dz3zm8e 4 ปีที่แล้ว

      @@Artur-sparf да у меня тоже, но почему в даташит написано с ui? вот что интересно. может устаревший даташит?

    • @Artur-sparf
      @Artur-sparf 4 ปีที่แล้ว

      @@user-xz9dz3zm8e Не могу по этому поводу что-то сказать, поскольку сам недавно с МК занимаюсь, стараюсь запоминать алгоритмы записей, которые работают.

    • @Artur-sparf
      @Artur-sparf 4 ปีที่แล้ว

      @@user-xz9dz3zm8e Мне еще и такое попадалось: void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
      {
      while(EECR & (1

    • @Artur-sparf
      @Artur-sparf 4 ปีที่แล้ว +1

      Кстати, а не может это быть аббревиатурой от unsegned int (ui) и unsigned char (uc)?

  • @aleksivanov9137
    @aleksivanov9137 3 ปีที่แล้ว

    Плохо то что на этом канале изучение микроконтроллеров закончилось .Спасибо,но печально.Хоть бы изредка что то продолжали.

  • @user-mc2lp8gg5l
    @user-mc2lp8gg5l 10 หลายเดือนก่อน +2

    А что за флаг?

  • @ascode964
    @ascode964 3 ปีที่แล้ว

    пожалуйста моргайте иногда) вас как будто в заложниках держат))

    • @ValeraDXM
      @ValeraDXM ปีที่แล้ว

      Юморист)

  • @spajalnikom
    @spajalnikom 5 ปีที่แล้ว +4

    Чей флаг за спиной?

    • @TheAerotrike
      @TheAerotrike 5 ปีที่แล้ว +1

      Похоже, что это флаг Республики Крым

    • @user-li4xh9fi6w
      @user-li4xh9fi6w  5 ปีที่แล้ว

      Со времен Киевской Руси эти цвета имели сакральный смысл. Такой флаг был у нас в государстве. Теперь, надеюсь, этот флаг снова вернется в наше государство.

    • @AleksLEST
      @AleksLEST 5 ปีที่แล้ว

      @@TheAerotrike нифига... у нас синяя узкая, белая широкая, красная узкая... Это непонятно чей... Села Большой Яблунец ,только пропорции другие... ну, или Сварога-Перуна-Даждьбога)))

    • @1654045
      @1654045 3 ปีที่แล้ว +1

      это флаг смелянской СШ №1
      www.nasha-persha.org.ua/symbolics

    • @spajalnikom
      @spajalnikom 3 ปีที่แล้ว

      @@1654045 понятно.

  • @vanosxematek7086
    @vanosxematek7086 3 ปีที่แล้ว

    Хер поймешь на компьютере что ты делаешь и так далее , четкого объяснение нет