Записью uint_16 в EEPROM

Тема в разделе "Arduino & Shields", создана пользователем Loco, 14 окт 2019.

  1. Loco

    Loco Нуб

    Добрый день, пишу код для управления кондиционером по IR каналу, но считанные команды не помещаются в переменные(каждая команда 32 байта) возможно кто-то может подсказать как запихнуть их в EEPROM

    Код (C++):
    uint16_t ONN[197] = {3100, 1600, 350, 400, 400, 1200, 350, 400, 400, 400, 400, 1200, 350, 400, 400, 1200, 350, 400, 400, 400, 400, 1200, 350, 1250, 350, 1200, 350, 400, 400, 1200, 350, 400, 400, 1200, 400, 1200, 350, 1200, 350, 400, 400, 400, 400, 400, 400, 400, 350, 1250, 350, 1200, 350, 400, 400, 1200, 350, 1250, 350, 400, 400, 400, 350, 1250, 350, 400, 400, 400, 350, 1200, 400, 400, 350, 400, 400, 1200, 400, 1200, 350, 400, 400, 1200, 350, 1200, 400, 1200, 350, 1200, 400, 1200, 350, 1200, 350, 400, 400, 400, 400, 1200, 350, 1250, 350, 400)

    uint16_t OF[197] = {6112, 7372,  578, 1628,  522, 1666,  582, 1630,  556, 1630,  522, 1668,  582, 1630,  532, 1656,  548, 1640,  582, 546,  582, 546,  584, 546,  584, 546,  556, 574,  550, 582,  522, 608,  472, 660,  500, 1686,  584, 1608,  578, 1628,  474, 1714,  586, 1612,  576, 1630,  470, 1716,  584, 1630,  528, 604,  558, 550,  580, 546,  582, 546,  584, 548,  582, 546,  584, 546,  584, 548,  552, 1638,  580, 1630,  528, 1658,  584, 1610,  578, 1628,  472, 1714,  584, 1610,  580, 1626,  474, 658,  472, 658,  502, 628,  528, 584,  578, 548,  580, 550,  582, 548,  582, 548,  582, 1630,  532, 1656,  548, 1640,  582, 1630,  532, 1656,  584, 546,  524, 1664,  584, 1630,  502, 630,  558, 550,  580, 548,  582, 546,  584, 548,  582, 1630,  556, 574,  556, 552,  580, 1626,  474, 1714,  612, 546,  584, 1610,  548, 1658,  552, 578,  474, 1714,  586, 1610,  552, 600,  554, 554,  578, 1628,  500, 658,  500, 604,  528, 1658,  552, 580,  548, 584,  468, 662,  498, 1686,  560, 598,  528, 1634,  582, 572,  556, 1630,  530, 602,  556, 576,  556, 1628,  474, 684,  446, 1714,  560, 596,  558, 1608,  578, 574,  536, 1648,  500, 1686,  584, 7390,  472};
     
  2. parovoZZ

    parovoZZ Гуру

    А что конкретно надо запихнуть в епромчик? Команды на 32 байта или показанные массивы?
     
  3. Loco

    Loco Нуб

    прошу прощения, этот массив и есть команда, их около 5 штук
     
  4. DetSimen

    DetSimen Guest

    а uint32_t не пробовал?
     
  5. Loco

    Loco Нуб

    нет, если можно объясните смысл?
    с eprom вообще не работал никогда
     
  6. DetSimen

    DetSimen Guest

    ты написал:
    какой смысл её хранить в двух 16-битных переменных, если можно хранить в одной 32-х битной uint32_t.
    Про EEPROM я еще не писал, это пестня отдельная
     
  7. Loco

    Loco Нуб

    понял
     
  8. Asper Daffy

    Asper Daffy Иксперд

    У библиотеки EEPROM есть методы put и get и пихайте ими туда что хотите.
     
  9. Loco

    Loco Нуб

    можно пример с такими переменными
     
  10. b707

    b707 Гуру

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

    Loco Нуб

    к сожалению не нашел не одного схожего с моим примером
     
  12. b707

    b707 Гуру

    в этом масиве 197 двухбайтных числел. Каким боком он относится к 32м байтам или битам?
    Для одной команды слишком длинно, для нескольких - нацело не делится.
    Особенно забавно. что в массиве нечетное число элементов :)
     
    Последнее редактирование: 14 окт 2019
  13. b707

    b707 Гуру

    Читать не умеешь? -значит не судьба. написать не сможешь
    Что, неужели не хватает соображалки хотя бы в Гугле посмотреть?
    https://www.arduino.cc/en/Reference/EEPROMPut
     
  14. Asper Daffy

    Asper Daffy Иксперд

    Берёшь и пихаешь ВЕСЬ свой массив в еепром одной единственной командой put (ОДНА СТРОКА).
    А потом читаешь одной командой get (тоже ОДНА СТРОКА).

    Все примеры есть в библиотеке. Какой ещё пример нужен?
     
  15. DetSimen

    DetSimen Guest

    ТС, ты сформулируй задачу внятно, чего ты хочешь сделать, более общими словами, тебе сразужэ сто решений накидают. Мошт, и не придёца uint16 в EEPROM пхать.