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

VadimRM

✩✩✩✩✩✩✩
2 Июл 2019
3
0
Доброго времени суток! При попытке компилирования под WeMos D1 mini немного изменённого кода Гайвера (изменил картинки) вылезает следующая ошибка:
C++:
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++:
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};
P.S. Не изменённый мною код при компиляции выдаёт ту же ошибку
 

Nick_SPb

✩✩✩✩✩✩✩
1 Ноя 2018
44
9
Привет, запятые убери перед закрывающей скобкой)))

zap.JPG
 

VadimRM

✩✩✩✩✩✩✩
2 Июл 2019
3
0
Привет, запятые убери перед закрывающей скобкой)))

Посмотреть вложение 4220
Не помогло
C++:
In file included from D:\Desktop\sketch_jul24c\sketch_jul24c.ino:3:0:

bitmap.h:19: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};

                                                      ^

bitmap.h:19: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]
1564112963879.png
 

Arhat109

★★★✩✩✩✩
9 Июн 2019
381
125
frames_cloud_up определен неверно.

Вы указали его как массив коротких целых из 2-х элементов, а приинициализировать пытаетесь двумя АДРЕСАМИ на массивы. Об чем Вам и сообщает кумпилятыр.

const uint16t * frames_cloud_up[2] = {cloud02, cloud03}; // так должно быть правильней.
 

VadimRM

✩✩✩✩✩✩✩
2 Июл 2019
3
0
frames_cloud_up определен неверно.

Вы указали его как массив коротких целых из 2-х элементов, а приинициализировать пытаетесь двумя АДРЕСАМИ на массивы. Об чем Вам и сообщает кумпилятыр.

const uint16t * frames_cloud_up[2] = {cloud02, cloud03}; // так должно быть правильней.
Не помогло:
1564148733525.png
C++:
In file included from D:\Desktop\sketch_jul24c\sketch_jul24c.ino:3:0:

bitmap.h:19:56: error: cannot convert 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'const uint16_t* {aka const short unsigned int*}' in initialization

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

                                                        ^

bitmap.h:19:56: error: cannot convert 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'const uint16_t* {aka const short unsigned int*}' in initialization

exit status 1
cannot convert 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'const uint16_t* {aka const short unsigned int*}' in initialization

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 
Последнее редактирование:

Александр Симонов

★★★✩✩✩✩
2 Авг 2018
510
131
Не помогло:
C++:
In file included from D:\Desktop\sketch_jul24c\sketch_jul24c.ino:3:0:

bitmap.h:19:56: error: cannot convert 'const uint16_t (*)[16] {aka const short unsigned int (*)[16]}' to 'const uint16_t* {aka const short unsigned int*}' in initialization

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

                                                        ^
Попробуй принудительно привести тип к указателю:
C++:
const uint16_t *frames_cloud_up[] = {(const uint16_t*)cloud02, (const uint16_t*)cloud03};