Помогите решить проблему с переменными

Тема в разделе "Arduino & Shields", создана пользователем VadimRM, 24 июл 2019.

  1. VadimRM

    VadimRM Нуб

    Доброго времени суток! При компиляции кода столкнулся с данной ошибкой:
    Код (Text):
    invalid conversion from 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'uint16_t {aka short unsigned int}' [-fpermissive]
    Сам код во вложении.
    Буду очень благодарен за помощь
     

    Вложения:

    • cloud.h
      Размер файла:
      40,6 КБ
      Просмотров:
      352
    Последнее редактирование: 24 июл 2019
  2. NikitOS

    NikitOS Король шутов Администратор

    Код на форум вставьте, зачем нам вложения
     
  3. DetSimen

    DetSimen Guest

    Код не твой?
     
  4. Daniil

    Daniil Гуру

    Кажется, вы пытаетесь изменить переменную, которая объявлена как константа. Хотелось бы код (неудобно качать) и полный текст ошибки, там должен быть номер строки.
     
  5. VadimRM

    VadimRM Нуб

    Вот код
    Код (C++):
    const uint16_t cloud02[][16] PROGMEM = {
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000},
    {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},};
    const uint16_t cloud03[][16] PROGMEM = {
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000},
      {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},};
    const uint16_t frames_cloud_up[2] = {cloud02, cloud03};
    Вот ошибка:
    Код (Text):
    sketch_jul24a:21:54: error: invalid conversion from 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'uint16_t {aka short unsigned int}' [-fpermissive]

    const uint16_t frames_cloud_up[2] = {cloud02, cloud03};

                                                          ^

    sketch_jul24a:21:54: error: invalid conversion from 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'uint16_t {aka short unsigned int}' [-fpermissive]

    exit status 1
    invalid conversion from 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'uint16_t {aka short unsigned int}' [-fpermissive]
     
    Вот код который далее использует эти переменные:
    Код (C++):
    void loadImage(uint16_t (*frame)[16]) {
      for (byte i = 0; i < 14; i++)
        for (byte j = 0; j < HEIGHT; j++)
          drawPixelXY(i, j, gammaCorrection(expandColor((pgm_read_word(&(frame[HEIGHT - j - 1][i]))))));
    }
     
    Последнее редактирование: 24 июл 2019
  6. Asper Daffy

    Asper Daffy Иксперд

    Переменные cloud_up04, cloud_up05, cloud_up06 и cloud_up07 являются двумерными массивами чисел типа unsigned, а в строке 430 ты пытаешься их (каждый из них) запихать в число типа unsigned.

    Эти слова несут какой-то смысл для тебя?

    -----------------------------

    Это было сказано по коду, что был прикреплён. В новом (выложенном) тоже самое, только имена и номера строк другие.

    Совет: НИКОГДА не меняй код по ходу обсуждения, если тебя об этом не просили. Знаешь как бесит, когда пишешь что-то, бьёшь пальцы, а потом выясняется, что пока писал, код уже изменился - так и хочется послать "на", сам типа разбирайся, переобуваясь на ходу.
     
    Daniil, parovoZZ и DetSimen нравится это.
  7. VadimRM

    VadimRM Нуб

    Извините за изменения, просто редактор ругался на очень большое количество символов
     
  8. VadimRM

    VadimRM Нуб

    Код Гайвера. Он замечательно компилится под Уну и работает, но при компиляции под WeMos D1 mini возникает вышеуказанная ошибка
     
  9. DetSimen

    DetSimen Guest

    Дак ты к Гайверу на форум и стучися. Не?
     
    NikitOS нравится это.
  10. VadimRM

    VadimRM Нуб

    Туда тоже стучал
     
  11. NikitOS

    NikitOS Король шутов Администратор

    Аж бесит, что код берут у гайвера, а панику создают тут, хотя у него свой форум есть:mad:
     
  12. VadimRM

    VadimRM Нуб

    У Гайвера не так оперативно отвечают
     
  13. Asper Daffy

    Asper Daffy Иксперд

    Именно этот код не может замечательно компилировать ни под Uno, ни под Dodici. Не может просто потому, что он неправильный с точки зрения языка. Ты, наверняка, что-то в нём поменял, что на твой взгляд несущественно, а оно оказалось важным.

    Ты не ответил на вопрос, мои слова тебе что-то говорят? Ты понимаешь в чём ошибка и как надо писать?
     
  14. VadimRM

    VadimRM Нуб

    Абсолютно ничего не менял. Этот же самый код компилится под уну.
    upload_2019-7-24_18-7-18.png upload_2019-7-24_18-7-47.png
     
  15. parovoZZ

    parovoZZ Гуру

    он же честно пишет в самом первом посту:
     
  16. NikitOS

    NikitOS Король шутов Администратор

    А мы не техническая поддержка гайвера, так что от нас помощи по его коду не найдется
     
  17. VadimRM

    VadimRM Нуб

    А чем, интересно, отличается его код от кода другого человека?
    На что влияет автор кода? Я прошу помощи в решении конкретной проблемы
     
  18. Asper Daffy

    Asper Daffy Иксперд

    Я не вижу кода целиком, потому не могу сказать в чём там недоразумение, но этот код ни под что не компилируется и компилироваться не может.
     
  19. Asper Daffy

    Asper Daffy Иксперд

    Тебе недостаточно того, что люди здесь просто не любят разбираться в коде гивера? Не любят и всё. Надеюсь, тебе никто ничего не должен?
    Разбирать какашки безграмотного блогера, который может налажать на ровном месте, на которое и не подумаешь, неприятно никому.
     
    NikitOS нравится это.
  20. VadimRM

    VadimRM Нуб

    Я просто взял и поменял плату. Как видите, оно компилируется под Уну