Считывание с microSD карты

CherLex
Offline
Зарегистрирован: 02.11.2014

День добрый форумчане!

Коротко о задаче: работаю с лентой WS2812 и нужно считать с microSD карты массив с цветами, решил хранить в хексе, из-за удобства, так как одно число, в формате uint32_t. Этот фаил будет подготавливать другая программа, которой пока что нет.

Проблема: не знаю как считать именно в формате uint32_t, либо как в него конвертировать из стринга, так как если верно понял, то считывание из файла идет по символьно стрингом.

Либо может подскажите как можно хранить более удобно массив цветов в файле.... в программе прописывал вручную массив, всё красиво работало, а как из файлика считать то что мне нужно... и в каком именно виде записывать цвета в файл в хексе тоже не понятно, либо 0x00FFFF, либо 00FFFF.

Сейчас в программе массив цветов в таком формате. Создать палитру цветов не вариант, так как программа будет создавать этот фаил путем обработки bmp изображений.

uint32_t   picture[6][5]={0x00FFFF, 0x000000, 0x000000, 0x000000, 0x00FFFF,
                        0x000000, 0x000000, 0xFF0000, 0x000000, 0x000000,
                        0x000000, 0xFF0000, 0x00FF00, 0xFF0000, 0x000000,
                        0xFF0000, 0x00FF00, 0x000000, 0x00FF00, 0xFF0000,
                        0x00FF00, 0xFF0000, 0x0000FF, 0xFF0000, 0x00FF00,
                        0x000000, 0x0000FF, 0xFF0000, 0x0000FF, 0x000000};

Заранее спасибо!

X-Dron
Offline
Зарегистрирован: 24.01.2015

Скажите, есть ли какая-нибудь разница между вашим массивим, и таким:
uint32_t   picture[6][5]={65535,0,0,0,65535,0,0,16711680,0,0,0,16711680,65280,16711680,0....
Будут ли они работать одинаково?
Если сойдемся во мнении, то могу подсказать, как действовать дальше.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

У вас каша в голове, такая наваристая, жуть....

unsigned int data;
file.read(&data,sizeof(data));

Ну или если уж совсем не понятно, замените unsigned int в первой строке на ваш uint32_t