128 битное число как?
- Войдите на сайт для отправки комментариев
Пнд, 05/04/2021 - 20:09
#include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED.
iarduino_OLED myOLED(0x3C); // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D.
//
const long long risunok_[]PROGMEM = // Создаём массив myImageInRAM содержащий изображение
{
0b1111111111111111111111111111111111111111111111111111111111111111,
0b1111111111111111111111111111111111111111111111110000011111111111,
0b1111111111111111111111111111111111111110000000000000001111111111,
0b1111111111111111111111111111111111000000000111111111101111111111,
0b1111111111111111111111111111110000000111111111111111100111111111,
0b1111111111111111111111111111100011111111111111111111110011111111,
0b1111111111111111111111111111100111111111111111111111110011111111,
0b1111111111111111111111111111100111111111111111111111111001111111,
0b1111111111111111111111111111100011111111111000111111111001111111,
0b1111111111111111111111011111001011111111110000011111111100111111,
0b1111111111111111111000000111001011111111100000011111111100111111,
0b1111111111111111100001110001101111111111100000011111111110011111,
0b1111111111111110000111111000111111111111111001111111111110011111,
0b1111111111111000111111111110001111111111111111111111111111001111,
0b1111111111100011111111111111000111111111111111111111111111001111,
0b1111111110000111111111111111110011111111111111111111111111101111,
0b1111111000011111111111111111111000111111111111111111111111100111,
0b1111110001111111111111111111111100011111111111111111111000000111,
0b1111000111111111110000011111111110001111111111111100000000000111,
0b1110001111111111110000001111111111000111111110000000001111100111,
0b1110000111111111110000001111111111110011111111111111111111100111,
0b1110000011111111111000011111111111100011111111111111111111101111,
0b1110010001111111111111111111111111000001110111111110000011101111,
0b1110011000111111111111111111111100001001000001111110000011001111,
0b1110011110011111111111111111111000111001000001111111000111001111,
0b1110011111001111111111111111100011111001100001111111111111001111,
0b1110011111100111111111111111001111111001111111111111111111001111,
0b1110011001111011111111111100111110011001111111111111111111011111,
0b1110010000111101111111110111111100001001111111111111111111011111,
0b1110011000111111111111111111111100011001111111111111001110011111,
0b1111011000111111111111111111111100111001100011111100000110011111,
0b1111011111111111111111111111111111111001000001111100000110111111,
0b1111011111111111111111111111111111111001000001111110001100111111,
0b1111011111111111111111111111110111111001100011111111111000111111,
0b1111001111111111111111111111100111111001111111111100000001111111,
0b1111001111111111111111111111000111111001000000000000011111111111,
0b1111001111111111111111111111000111111010000000001111111111111111,
0b1111001111111111110011111111101111111011111111111111111111111111,
0b1111100111111011110011111111111111110011111111111111111111111111,
0b1111110011110001110011111111111111110011111111111111111111111111,
0b1111111001110000110011111001111111100111111111111111111111111111,
0b1111111100110000110011110001111110001111111111111111111111111111,
0b1111111110011001110011110001111100011111111111111111111111111111,
0b1111111111000111110011110011110001111111111111111111111111111111,
0b1111111111100011110011111111100011111111111111111111111111111111,
0b1111111111110001110001111110001111111111111111111111111111111111,
0b1111111111111100110001111000011111111111111111111111111111111111,
0b1111111111111110010001000001111111111111111111111111111111111111,
0b1111111111111111111001001111111111111111111111111111111111111111,
0b1111111111111111111111111111111111111111111111111111111111111111
};
void setup(){
myOLED.begin();
for(int j=0;j<50;j++){
for(int i=0;i<64;i++){
myOLED.drawPixel(100-i,5+j,bitRead(pgm_read_dword(&risunok_[j]),i) );
}
}
}
void loop(){}
Прикупил экранчик 128*64, балуюсь с простой и понятной библиотекой. Но в ней нет толком как картинки выводить из побитной разрисовки. Вот пример написал. 64 битное число из озу читает, а из прогмем фокус с ddword не проходит. Как просто оптимизировать код чтоб 0b и , как можно меньше вбивать?
А при чём тут 128-битное числа? В Вашем коде 64-битное.
Кстати, интересно сколькибитное число Вам понадобится, чтобы вывести картинку размером, скажем, 1024х768?
Не страдайте ерундой, делайте рисунки в обычном графическом редакторе. Хоть в Paint'е.
А при чём тут 128-битное числа? В Вашем коде 64-битное.
Кстати, интересно сколькибитное число Вам понадобится, чтобы вывести картинку размером, скажем, 1024х768?
Да, 64 - long long long ардуино не принимает. Пусть даже 64, уже хорошо. Можно на 2 части делить картинку.
Не страдайте ерундой, делайте рисунки в обычном графическом редакторе. Хоть в Paint'е.
Рисовать не надо. Это готовые через конвертер - 0 и 1 без запятых и 0b
Зачем 128-битное число человеку, который для получения 64-х бит читает с флеша 64 битное число 64 раза? Вы хотите ардуину пригрузить по полной, чтобы знала, зачем микросхеме транзисторы нужны?
long long long ардуино не принимает.
А "не ардуино" принимает?
Честно, не хотел её обидеть :) Думал, что читает только бит (сразу бах и извлекает). Но это уже оптимизация, а мне ещё далеко до неё.
long long long ардуино не принимает.
А "не ардуино" принимает?
Не знаю, просто думал, что ей ровно, что 0b11111111,0b11111111 ,что 0b1111111111111111
Прочитайте про union. Поле данных любой длины, к которому можно обращаться простыми байтами, не заморачиваясь на 128.
Ладно, держите, я сегодня пьяный и добрый. Можно и 128, и 256, и даже 1024. Без 0b, но и без запятых (если очень хотите именно с 0b - можно, но надо обсудить литраж и годы выдержки). Для доступа к отдельным байтам есть length() (в байтах) и оператор []. Также я сделал метод печати. В EEPROM (или на экран) пихается точно также, как печатается.
Пример
#include "int100500.h" int128_t a = "01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101"; int128_t b = "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"; void setup() { Serial.begin(9600); Serial.print("a="); Serial.println(a); Serial.print("b="); Serial.println(b); } void loop(void) {}результат работы в мониторе порта
библиотека int100500
#ifndef INT100500_H #define INT100500_H template<size_t totalBits> struct int_t : public Printable { int_t(const char bitField[totalBits]) { for (size_t byteNum = 0, bitCount = 0; byteNum < totalBytes; byteNum++) { byte & currentByte = buffer[byteNum]; currentByte = 0; for (size_t bitNum = 0; bitNum < 8; bitNum++, bitCount++) { if (bitCount < totalBits && bitField[bitCount] != '0') { currentByte |= (1 << (7 - bitNum)); } } } } size_t length(void) const { return totalBytes; }; byte & operator [] (const size_t indx) { return buffer[indx]; } size_t printTo(Print& p) const { size_t res = 0; for (size_t n = 0; n < totalBytes; n++) { const byte currentByte = buffer[n]; for (size_t bitNum = 0; bitNum < 8; bitNum++) { const bool currentBit = currentByte & (1 << (7 - bitNum)); res += p.print(currentBit); } } return res; } private: static const size_t totalBytes = (totalBits + 7) / 8; byte buffer[totalBytes]; }; typedef int_t<128> int128_t; typedef int_t<256> int256_t; typedef int_t<512> int512_t; typedef int_t<1024> int1024_t; #endif // INT100500_HВроде, работает. Но ежели где чего ляпнул - звиняйте.
Ладно, держите, я сегодня пьяный и добрый.
о ежели где чего ляпнул - звиняйте.
И это настораживает.)
Отчего то ткнул на отзывы об Ардуино.ру и вдруг...
Это Вы Евгений?))
Да, 64 - long long long ардуино не принимает. Пусть даже 64, уже хорошо. Можно на 2 части делить картинку.
uint64_t, библиотек не нужно.
Нет, конечно. Но, вот, ник почти мой, только пробел лишний. И что-то мне подсказывает, что это не случайное совпадение, а попытка подставы. Видимо какой-то обиженный новорег решил отыграться :-(
Дак сразу видно по "Знаток интернета 3 уровня". С таким уровнем порнуху в интернете не найдешь. А наш-то находит!
:--)))
Ладно, держите, я сегодня пьяный и добрый. Можно и 128, и 256, и даже 1024. Без 0b, но и без запятых (если очень хотите именно с 0b - можно, но надо обсудить литраж и годы выдержки). Для доступа к отдельным байтам есть length() (в байтах) и оператор []. Также я сделал метод печати. В EEPROM (или на экран) пихается точно также, как печатается.
Пример
#include "int100500.h" int128_t a = "01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101"; int128_t b = "10101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"; void setup() { Serial.begin(9600); Serial.print("a="); Serial.println(a); Serial.print("b="); Serial.println(b); } void loop(void) {}результат работы в мониторе порта
библиотека int100500
#ifndef INT100500_H #define INT100500_H template<size_t totalBits> struct int_t : public Printable { int_t(const char bitField[totalBits]) { for (size_t byteNum = 0, bitCount = 0; byteNum < totalBytes; byteNum++) { byte & currentByte = buffer[byteNum]; currentByte = 0; for (size_t bitNum = 0; bitNum < 8; bitNum++, bitCount++) { if (bitCount < totalBits && bitField[bitCount] != '0') { currentByte |= (1 << (7 - bitNum)); } } } } size_t length(void) const { return totalBytes; }; byte & operator [] (const size_t indx) { return buffer[indx]; } size_t printTo(Print& p) const { size_t res = 0; for (size_t n = 0; n < totalBytes; n++) { const byte currentByte = buffer[n]; for (size_t bitNum = 0; bitNum < 8; bitNum++) { const bool currentBit = currentByte & (1 << (7 - bitNum)); res += p.print(currentBit); } } return res; } private: static const size_t totalBytes = (totalBits + 7) / 8; byte buffer[totalBytes]; }; typedef int_t<128> int128_t; typedef int_t<256> int256_t; typedef int_t<512> int512_t; typedef int_t<1024> int1024_t; #endif // INT100500_HВроде, работает. Но ежели где чего ляпнул - звиняйте.
После работы попробую обязательно.
Да, 64 - long long long ардуино не принимает. Пусть даже 64, уже хорошо. Можно на 2 части делить картинку.
uint64_t, библиотек не нужно.
Подсказку не понял. Пробовал так:
long long Stroka = pgm_read_uint_64(&risunok_[j]);
ругается...
Буквально недавно использовал uint64_t - как из пистолета).
После работы попробую обязательно.
...
Втр, 06/04/2021 - 06:11
Чисто из дюбопытства, если не секрет, где Вы находитесь?
Смоленская область. Сегодня работа с 7.00 началась.
long long Stroka = pgm_read_uint_64(&risunok_[j]);
ругается...
Правильно. Так и должно быть. А вы хотели добиться чего то другого ?
Скажите, а если у вас спрайт будет шириной 345 бит, вы будете искать переменную на 345 бит ?
Допустим вы нашли такую переменную и даже считали туда данные из eeprom, дальше вы что будете делать ?
#include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED. iarduino_OLED myOLED(0x3C); // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D. // const long long risunok_[]PROGMEM = // Создаём массив myImageInRAM содержащий изображение { 0b11111111111111111111111111111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111110000011111111111, 0b11111111111111111111111111111111,0b11111110000000000000001111111111, 0b11111111111111111111111111111111,0b11000000000111111111101111111111, 0b11111111111111111111111111111100,0b00000111111111111111100111111111, 0b11111111111111111111111111111000,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111111001111111, 0b11111111111111111111111111111000,0b11111111111000111111111001111111, 0b11111111111111111111110111110010,0b11111111110000011111111100111111, 0b11111111111111111110000001110010,0b11111111100000011111111100111111, 0b11111111111111111000011100011011,0b11111111100000011111111110011111, 0b11111111111111100001111110001111,0b11111111111001111111111110011111, 0b11111111111110001111111111100011,0b11111111111111111111111111001111, 0b11111111111000111111111111110001,0b11111111111111111111111111001111, 0b11111111100001111111111111111100,0b11111111111111111111111111101111, 0b11111110000111111111111111111110,0b00111111111111111111111111100111, 0b11111100011111111111111111111111,0b00011111111111111111111000000111, 0b11110001111111111100000111111111,0b10001111111111111100000000000111, 0b11100011111111111100000011111111,0b11000111111110000000001111100111, 0b11100001111111111100000011111111,0b11110011111111111111111111100111, 0b11100000111111111110000111111111,0b11100011111111111111111111101111, 0b11100100011111111111111111111111,0b11000001110111111110000011101111, 0b11100110001111111111111111111111,0b00001001000001111110000011001111, 0b11100111100111111111111111111110,0b00111001000001111111000111001111, 0b11100111110011111111111111111000,0b11111001100001111111111111001111, 0b11100111111001111111111111110011,0b11111001111111111111111111001111, 0b11100110011110111111111111001111,0b10011001111111111111111111011111, 0b11100100001111011111111101111111,0b00001001111111111111111111011111, 0b11100110001111111111111111111111,0b00011001111111111111001110011111, 0b11110110001111111111111111111111,0b00111001100011111100000110011111, 0b11110111111111111111111111111111,0b11111001000001111100000110111111, 0b11110111111111111111111111111111,0b11111001000001111110001100111111, 0b11110111111111111111111111111101,0b11111001100011111111111000111111, 0b11110011111111111111111111111001,0b11111001111111111100000001111111, 0b11110011111111111111111111110001,0b11111001000000000000011111111111, 0b11110011111111111111111111110001,0b11111010000000001111111111111111, 0b11110011111111111100111111111011,0b11111011111111111111111111111111, 0b11111001111110111100111111111111,0b11110011111111111111111111111111, 0b11111100111100011100111111111111,0b11110011111111111111111111111111, 0b11111110011100001100111110011111,0b11100111111111111111111111111111, 0b11111111001100001100111100011111,0b10001111111111111111111111111111, 0b11111111100110011100111100011111,0b00011111111111111111111111111111, 0b11111111110001111100111100111100,0b01111111111111111111111111111111, 0b11111111111000111100111111111000,0b11111111111111111111111111111111, 0b11111111111100011100011111100011,0b11111111111111111111111111111111, 0b11111111111111001100011110000111,0b11111111111111111111111111111111, 0b11111111111111100100010000011111,0b11111111111111111111111111111111, 0b11111111111111111110010011111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111111111111111111111 }; void setup(){ myOLED.begin(); for(int j=0;j<50;j++){ for(int i=0;i<32;i++){ myOLED.drawPixel(100-i,5+j,bitRead(pgm_read_dword(&risunok_[j]),i) ); } for(int i=0;i<32;i++){ myOLED.drawPixel(132-i,5+j,bitRead(pgm_read_dword(&risunok_[j+1]),i) ); } } } void loop(){}Понятия не имею будет это работать или нет, но надеюсь мою мысль вы поймете.
long long Stroka = pgm_read_uint_64(&risunok_[j]);
ругается...
Правильно. Так и должно быть. А вы хотели добиться чего то другого ?
Скажите, а если у вас спрайт будет шириной 345 бит, вы будете искать переменную на 345 бит ?
Допустим вы нашли такую переменную и даже считали туда данные из eeprom, дальше вы что будете делать ?
#include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED. iarduino_OLED myOLED(0x3C); // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D. // const long long risunok_[]PROGMEM = // Создаём массив myImageInRAM содержащий изображение { 0b11111111111111111111111111111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111110000011111111111, 0b11111111111111111111111111111111,0b11111110000000000000001111111111, 0b11111111111111111111111111111111,0b11000000000111111111101111111111, 0b11111111111111111111111111111100,0b00000111111111111111100111111111, 0b11111111111111111111111111111000,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111111001111111, 0b11111111111111111111111111111000,0b11111111111000111111111001111111, 0b11111111111111111111110111110010,0b11111111110000011111111100111111, 0b11111111111111111110000001110010,0b11111111100000011111111100111111, 0b11111111111111111000011100011011,0b11111111100000011111111110011111, 0b11111111111111100001111110001111,0b11111111111001111111111110011111, 0b11111111111110001111111111100011,0b11111111111111111111111111001111, 0b11111111111000111111111111110001,0b11111111111111111111111111001111, 0b11111111100001111111111111111100,0b11111111111111111111111111101111, 0b11111110000111111111111111111110,0b00111111111111111111111111100111, 0b11111100011111111111111111111111,0b00011111111111111111111000000111, 0b11110001111111111100000111111111,0b10001111111111111100000000000111, 0b11100011111111111100000011111111,0b11000111111110000000001111100111, 0b11100001111111111100000011111111,0b11110011111111111111111111100111, 0b11100000111111111110000111111111,0b11100011111111111111111111101111, 0b11100100011111111111111111111111,0b11000001110111111110000011101111, 0b11100110001111111111111111111111,0b00001001000001111110000011001111, 0b11100111100111111111111111111110,0b00111001000001111111000111001111, 0b11100111110011111111111111111000,0b11111001100001111111111111001111, 0b11100111111001111111111111110011,0b11111001111111111111111111001111, 0b11100110011110111111111111001111,0b10011001111111111111111111011111, 0b11100100001111011111111101111111,0b00001001111111111111111111011111, 0b11100110001111111111111111111111,0b00011001111111111111001110011111, 0b11110110001111111111111111111111,0b00111001100011111100000110011111, 0b11110111111111111111111111111111,0b11111001000001111100000110111111, 0b11110111111111111111111111111111,0b11111001000001111110001100111111, 0b11110111111111111111111111111101,0b11111001100011111111111000111111, 0b11110011111111111111111111111001,0b11111001111111111100000001111111, 0b11110011111111111111111111110001,0b11111001000000000000011111111111, 0b11110011111111111111111111110001,0b11111010000000001111111111111111, 0b11110011111111111100111111111011,0b11111011111111111111111111111111, 0b11111001111110111100111111111111,0b11110011111111111111111111111111, 0b11111100111100011100111111111111,0b11110011111111111111111111111111, 0b11111110011100001100111110011111,0b11100111111111111111111111111111, 0b11111111001100001100111100011111,0b10001111111111111111111111111111, 0b11111111100110011100111100011111,0b00011111111111111111111111111111, 0b11111111110001111100111100111100,0b01111111111111111111111111111111, 0b11111111111000111100111111111000,0b11111111111111111111111111111111, 0b11111111111100011100011111100011,0b11111111111111111111111111111111, 0b11111111111111001100011110000111,0b11111111111111111111111111111111, 0b11111111111111100100010000011111,0b11111111111111111111111111111111, 0b11111111111111111110010011111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111111111111111111111 }; void setup(){ myOLED.begin(); for(int j=0;j<50;j++){ for(int i=0;i<32;i++){ myOLED.drawPixel(100-i,5+j,bitRead(pgm_read_dword(&risunok_[j]),i) ); } for(int i=0;i<32;i++){ myOLED.drawPixel(132-i,5+j,bitRead(pgm_read_dword(&risunok_[j+1]),i) ); } } } void loop(){}Понятия не имею будет это работать или нет, но надеюсь мою мысль вы поймете.
#include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED. iarduino_OLED myOLED(0x3C); // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D. // const long long risunok_[]PROGMEM = // Создаём массив { 0b11111111111111111111111111111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111110000011111111111, 0b11111111111111111111111111111111,0b11111110000000000000001111111111, 0b11111111111111111111111111111111,0b11000000000111111111101111111111, 0b11111111111111111111111111111100,0b00000111111111111111100111111111, 0b11111111111111111111111111111000,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111110011111111, 0b11111111111111111111111111111001,0b11111111111111111111111001111111, 0b11111111111111111111111111111000,0b11111111111000111111111001111111, 0b11111111111111111111110111110010,0b11111111110000011111111100111111, 0b11111111111111111110000001110010,0b11111111100000011111111100111111, 0b11111111111111111000011100011011,0b11111111100000011111111110011111, 0b11111111111111100001111110001111,0b11111111111001111111111110011111, 0b11111111111110001111111111100011,0b11111111111111111111111111001111, 0b11111111111000111111111111110001,0b11111111111111111111111111001111, 0b11111111100001111111111111111100,0b11111111111111111111111111101111, 0b11111110000111111111111111111110,0b00111111111111111111111111100111, 0b11111100011111111111111111111111,0b00011111111111111111111000000111, 0b11110001111111111100000111111111,0b10001111111111111100000000000111, 0b11100011111111111100000011111111,0b11000111111110000000001111100111, 0b11100001111111111100000011111111,0b11110011111111111111111111100111, 0b11100000111111111110000111111111,0b11100011111111111111111111101111, 0b11100100011111111111111111111111,0b11000001110111111110000011101111, 0b11100110001111111111111111111111,0b00001001000001111110000011001111, 0b11100111100111111111111111111110,0b00111001000001111111000111001111, 0b11100111110011111111111111111000,0b11111001100001111111111111001111, 0b11100111111001111111111111110011,0b11111001111111111111111111001111, 0b11100110011110111111111111001111,0b10011001111111111111111111011111, 0b11100100001111011111111101111111,0b00001001111111111111111111011111, 0b11100110001111111111111111111111,0b00011001111111111111001110011111, 0b11110110001111111111111111111111,0b00111001100011111100000110011111, 0b11110111111111111111111111111111,0b11111001000001111100000110111111, 0b11110111111111111111111111111111,0b11111001000001111110001100111111, 0b11110111111111111111111111111101,0b11111001100011111111111000111111, 0b11110011111111111111111111111001,0b11111001111111111100000001111111, 0b11110011111111111111111111110001,0b11111001000000000000011111111111, 0b11110011111111111111111111110001,0b11111010000000001111111111111111, 0b11110011111111111100111111111011,0b11111011111111111111111111111111, 0b11111001111110111100111111111111,0b11110011111111111111111111111111, 0b11111100111100011100111111111111,0b11110011111111111111111111111111, 0b11111110011100001100111110011111,0b11100111111111111111111111111111, 0b11111111001100001100111100011111,0b10001111111111111111111111111111, 0b11111111100110011100111100011111,0b00011111111111111111111111111111, 0b11111111110001111100111100111100,0b01111111111111111111111111111111, 0b11111111111000111100111111111000,0b11111111111111111111111111111111, 0b11111111111100011100011111100011,0b11111111111111111111111111111111, 0b11111111111111001100011110000111,0b11111111111111111111111111111111, 0b11111111111111100100010000011111,0b11111111111111111111111111111111, 0b11111111111111111110010011111111,0b11111111111111111111111111111111, 0b11111111111111111111111111111111,0b11111111111111111111111111111111 }; void setup(){ myOLED.begin(); for(int j=0;j<100;j=j+2){ uint64_t Stroka1_2 = pgm_read_dword(&risunok_[j]); uint64_t Stroka2_2 = pgm_read_dword(&risunok_[j+1]); for(int i=0;i<32;i++){ myOLED.drawPixel(64-i,5+j/2,bitRead(Stroka1_2,i) ); myOLED.drawPixel(96-i,5+j/2,bitRead(Stroka2_2,i) ); } } } void loop(){}Да, мысль ясна. Такой вариант, с учётом поправок. Но осевая вертикальная гармонию кубиков рушит )
Изначально я привязался к размеру экрана 128*64, соответственно и картинки такие хочется. А конвертер и "нотепад" имеющуюся картинку вгонят в размер.
#include <iarduino_OLED.h> #include "int100500.h" iarduino_OLED myOLED(0x3C); int128_t risunok_[] = {"11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100001111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000001111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111000000111111111111111", "11111111111111111111111100111111111111111111111111111111111111111111111111111011111111111111111111111111110000000111111111111111", "11111111111111111111100001110000111111111111111111111111111111111111111111101111111111111111111111111111100000000111111111111111", "11111111111111111111000011111111110000011111111111111111111111111111111111011111111111111111100000111111100000000011111111111111", "11111111111111111110011001111111111111111000011111111111111111111111111110111111111111111110000000011111000000000011111111111111", "11111111111111111110111000111111111111111111111101111111111111111111111101111111111111111100000000011111000000000011111111111111", "11111111111111111101111100111111111111111111111111111111111111111111111011111111111111111100000000111110000001000001111111111111", "11111111111111111101111110011111100000011111111111110111111111111111110111111111111111111000000000111100000011100001111111111111", "11111111111111111011111111001111100000001111111111111111111111111111111111111111111111111000000001111100000111110001111111111111", "11111111111111111011111111100111100000000111111111111111111111111111101111111111111111111100000111111000000111110000111111111111", "11111111111111110111111111100111100000000011111111111111111111111111011111111111111111111111111111110000000111110000111111111111", "11111111111111110111111111110011110000000011111111111111111111111110111111111111111111111111111111110000000111110000111111111111", "11111111111111101111100111111001111000000011111111111111111111111101111100001111111111111111111111100000000011110000011111111111", "11111111111111101110000001111100111110000111111111111111111111111011110000000111111111111111111111100000000011100000011111111111"}; void setup() { myOLED.begin(); } void loop(void) {}Попробовал так на кусочке картинки. Скетч использует... 169% динамической памяти...
Но осевая вертикальная гармонию кубиков рушит )
на экране ее не будет - вы об этом не догадываетесь?
еще бы - при таком раскладе картинка занимает ровно в 8 раз больше места. чем битовый массив
заканчивайте фигней страдать. Картинку можно хранить по байтно, никакие uint64 uint128 тут нафик не нужны
Но, в принципе это легко переделать, чтобы эти строки в PROGMEM жили - изменить в библиотеке надо всего пару строк. Если Вам так приспичило - поменяйте. Будет засирать прогмем, но его побольше.
А вообще, рукоблудие всё это. Но если хочется - не вопрос. Перенести в прогмем несложно.
А почему картинка с горизонтальной раскладкой ? В дисплее она из 8 битных вертикальных полосок !
Но осевая вертикальная гармонию кубиков рушит )
на экране ее не будет - вы об этом не догадываетесь?
Конечно ) Её вбивать надо в массив 01(
А почему картинка с горизонтальной раскладкой ? В дисплее она из 8 битных вертикальных полосок !
ТС-у пофик, он фигачит на экран каждый бит отдельно... На скорость вывода ему плевать.
Вся тема с самого начала - сплошные гланды через Ж, искать логику тут бессмысленно
Конечно ) Её вбивать надо в массив 01(
чего чего??? вы совсем с дуба рухнули? Выводите два 64-битных массива подряд - и никакой полоски не будет.
Более того - точно так же можно выводить обычные байты из 8 бит - и все будет работать без всей этой побутени. что вы нагородили
еще бы - при таком раскладе картинка занимает ровно в 8 раз больше места. чем битовый массив
заканчивайте фигней страдать. Картинку можно хранить по байтно, никакие uint64 uint128 тут нафик не нужны
Да, что в 8 раз больше это тоже ясно было вчера (не зря же эти 0 и 1 синенькие, а не черненькие))
Картинка и хранится по байтно в тхт, просто хотелось в массив её сразу опп!
А когда справитесь с прогмем, я подскажу как сделать, чтобы она и там не хранилась, а была только в исходнике. В коде же будет сразу готовый массив. Правда, подскажу, но сначала сделайте с прогмем, чтобы хоть как-то заработало.
А мыстурбации не стесняйтесь - все этим грешат.
Нет, вы не понимаете (к сожалению). В конвертере есть массив 01010101 , но нет 0b01010101, как нет и "01010101",
Ну да ладно, ясно.
Эмоций много напрасных. Остыньте, вникните, а впрочем не надо )))
Нет, вы не понимаете (к сожалению). В конвертере есть массив 01010101 , но нет 0b01010101, как нет и "01010101"
Это Вы мне? Можете пояснить чуть подробнее: 01010101 отличается от 0b01010101 и от "01010101" только отсутствием 0b и кавычек? Для Вас это важно? Но, вроде ж с 0b Вас устраивало? Перестало? Можете толком сказать что Вам, наконец, нужно?
Нет, вы не понимаете (к сожалению). В конвертере есть массив 01010101 , но нет 0b01010101, как нет и "01010101",
а это не все равно? - после конвертора кто мешает строчку переделать как надо? - напишите свой конвертер, это будет проще.
и обратите внимание на замечание выше - в Вашем дисплее пиксели кодируются по вертикали, а не по горизонтали
Можете толком сказать что Вам, наконец, нужно?
кажется понял.
ТС получает из конвертера биты сплошным потоком:
и потом ВРУЧНУЮ!! добавляет в них 0b и запятые для разделения
Поэтому ему хочется иметь число с как можно большей "битностью" - чтобы 0b вставлять пореже :)
если я прав в предыдущем сообщении. то вопрос к ТС
А написать простенький скрипт в винде, который преобразует строчку
в строчку
в голову не приходило? - вы программист или где? - 4 года регистрации на форуме...
я трудовик (реально), догадались вы верно. Вбивать вручную нетрудно (особенно для 128 битных чисел), хотелось картинку видеть в массиве)...
Может правда попробовать в "HiAsm" правда надо было?, попробовать.
Не надо ничего вбивать и писать не надо скрипт, в "нотепаде" всё можно преобразовывать оказывается)
#include <iarduino_OLED.h> // Подключаем библиотеку iarduino_OLED. iarduino_OLED myOLED(0x3C); // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x3C или 0x3D. // const uint8_t myImageInROM[] PROGMEM = { 128, 56, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b10111111, 0b11001111, 0b11100111, 0b11100111, 0b11000111, 0b10011011, 0b00111111, 0b11111111, 0b11111111, 0b11110111, 0b11110111, 0b11110111, 0b01110111, 0b01111111, 0b01111111, 0b01111111, 0b01101111, 0b11101111, 0b11101111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b10111111, 0b11111111, 0b11111111, 0b11110111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b00011111, 0b00011111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b10001111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b00011111, 0b00001111, 0b00000011, 0b00000001, 0b10000000, 0b10000000, 0b10000000, 0b00000000, 0b00000111, 0b00111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b10011111, 0b11100111, 0b11111001, 0b11111110, 0b00011111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00011111, 0b11111110, 0b11111100, 0b11111001, 0b11100011, 0b11000111, 0b10011111, 0b00111100, 0b01111000, 0b11110000, 0b11100000, 0b11100000, 0b11100000, 0b11100000, 0b11110001, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b10111111, 0b11011111, 0b11101111, 0b11110111, 0b00111111, 0b00011110, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b11011111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111100, 0b11111100, 0b11111100, 0b11111100, 0b11111110, 0b01111111, 0b00111111, 0b00001111, 0b00000011, 0b00000001, 0b10000000, 0b10000000, 0b00000000, 0b00000000, 0b00000111, 0b00011111, 0b00011111, 0b00011111, 0b00000100, 0b00000000, 0b00000000, 0b00000001, 0b00001111, 0b01111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b11011111, 0b11100111, 0b11111001, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111100, 0b11111000, 0b11111000, 0b11111000, 0b11111000, 0b11111100, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111100, 0b11111001, 0b11110011, 0b11000111, 0b10001111, 0b00111111, 0b01111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11101111, 0b10000111, 0b10000011, 0b00000011, 0b00000111, 0b00000111, 0b00001111, 0b00011111, 0b11111111, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11001110, 0b11001100, 0b11001100, 0b11001100, 0b11101110, 0b11101110, 0b11101111, 0b11101111, 0b11101111, 0b11100111, 0b11100111, 0b11100111, 0b11100111, 0b11110111, 0b11110111, 0b11110111, 0b11110111, 0b11110111, 0b11110011, 0b11110011, 0b11110011, 0b11110011, 0b11100011, 0b11000001, 0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00011111, 0b00111111, 0b01111111, 0b00111111, 0b00011110, 0b00000000, 0b11000000, 0b11110000, 0b11110000, 0b11110000, 0b10000000, 0b00000000, 0b11000000, 0b11000000, 0b11000000, 0b10000001, 0b00001111, 0b01111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01110011, 0b11111100, 0b11011111, 0b00000111, 0b00000011, 0b00000011, 0b00000011, 0b00000111, 0b00001111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b10000011, 0b00000001, 0b00000001, 0b00000001, 0b00000001, 0b10000011, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b00111000, 0b00000011, 0b00000111, 0b00000111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001110, 0b00001110, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00001111, 0b00000111, 0b11000111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111011, 0b11100000, 0b11000000, 0b11000000, 0b10000000, 0b11000000, 0b11000001, 0b11100011, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11110000, 0b11000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000011, 0b00000011, 0b00000011, 0b00000000, 0b00000000, 0b00000111, 0b00001111, 0b00001111, 0b00000111, 0b11000000, 0b11111000, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111101, 0b11110111, 0b11011110, 0b10111110, 0b11111100, 0b11111110, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b00111111, 0b00111111, 0b01111111, 0b01111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b00111111, 0b00001111, 0b00000111, 0b00000001, 0b00000000, 0b10000000, 0b10000000, 0b10000000, 0b10011100, 0b00111110, 0b00111111, 0b00011111, 0b00011111, 0b00001111, 0b00000010, 0b10000000, 0b10000000, 0b11000000, 0b11000000, 0b10011100, 0b00011110, 0b00011111, 0b00001111, 0b00000111, 0b10000010, 0b11000000, 0b11000000, 0b00111000, 0b11111100, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11110011, 0b11100000, 0b11000000, 0b10000000, 0b10000000, 0b10000000, 0b11000001, 0b11100011, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111100, 0b11110000, 0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00111111, 0b01111111, 0b01111111, 0b00111110, 0b00000000, 0b00000000, 0b11000000, 0b11110000, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111011, 0b11110111, 0b11011111, 0b01111111, 0b11111111, 0b11110000, 0b11100000, 0b11000000, 0b11000000, 0b11000000, 0b11100000, 0b11111111, 0b11111111, 0b11111111, 0b01111111, 0b00011111, 0b00001111, 0b00000011, 0b00000001, 0b10000000, 0b11000000, 0b11000000, 0b11000000, 0b11001110, 0b00011111, 0b00011111, 0b00001111, 0b00001111, 0b00000111, 0b10000000, 0b11000000, 0b11000000, 0b11100000, 0b11100000, 0b11100110, 0b00000111, 0b00000111, 0b00000111, 0b11000011, 0b11100001, 0b11110000, 0b11111000, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111100, 0b11111011, 0b11100111, 0b10011111, 0b01111111, 0b11100001, 0b11000000, 0b11000000, 0b10000000, 0b10000000, 0b11000000, 0b11000001, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111000, 0b11100000, 0b00000000, 0b00000000, 0b00000000, 0b11000000, 0b11110000, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111100, 0b11111011, 0b11101111, 0b11011111, 0b10111111, 0b10111111, 0b00011111, 0b00000111, 0b00000011, 0b00000000, 0b10000000, 0b10000000, 0b10000000, 0b10000110, 0b10001111, 0b11001111, 0b11001111, 0b11000111, 0b11000111, 0b11000001, 0b11000000, 0b11100000, 0b11100000, 0b11100000, 0b11100000, 0b11100011, 0b11110011, 0b11110011, 0b11110011, 0b11111001, 0b11111000, 0b11111100, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111110, 0b11111110, 0b11111110, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111 }; // void setup() { // myOLED.begin(); // Инициируем работу с дисплеем. // myOLED.drawImage(myImageInROM, 0, 60, IMG_ROM); // Выводим картинку myImageInRAM в позицию 36x27, указав, что картинка хранится в оперативной памяти (IMG_RAM). // } // void loop() {} //Сделал как рекомендуют авторы библиотеки для спрайтиков от руки. Жаль что конвертера у них нет от слова совсем. Логика аховая (неужели так во всех библиотеках для экранов ?) - картинку режем на столбики, потом столбик на строчечки, а их в одну строку клеим. Из картинки - фарш в массиве))) Если все так делают, должен быть единый конвертер?
картинку режем на столбики, потом столбик на строчечки, а их в одну строку клеим. Из картинки - фарш в массиве))) Если все так делают, должен быть единый конвертер?
вы все переживаете, что массивы некрасивые? :) - да какая разница, наиболее эффективно преобразовывать картинки вообще в HEX - вы там в принципе никаких следов исходного имиджа не увидите...
Да и обычно эти картинки кладутся в отдельный файл и никто их глазами не разглядывает
вы все переживаете, что массивы некрасивые? :) - да какая разница, наиболее эффективно преобразовывать картинки вообще в HEX - вы там в принципе никаких следов исходного имиджа не увидите...
Да и обычно эти картинки кладутся в отдельный файл и никто их глазами не разглядывает
Использование в HEX - да, а по поводу "глазами не разглядывает, помню, добивал кириллицу в фонты прямо в HEX и, вроде, ничего так получилось:
А вообще, как сделать по-хорошему, я уже писал выше: готовим рисунок в графическом редакторе, потом пишем программу, которая читает рисунок из BMP и преобразует в синтаксис Си. При необходимости со всякими поворотами и отражениями, т.к. структура экране не обязана повторять структуру BMP файла.
Именно так и были подготовлены картинки для этого проекта http://arduino.ru/forum/proekty/bibliotechka-dlya-oled-displeya-ssd1322-4-wire-spi-256x64-16-ottenkov-serogo
Кстати, там есть ссылка на видео, так что можно посмотреть, как это все выглядит как в коде, так и на экране.
Можете толком сказать что Вам, наконец, нужно?
В принципе способ хороший - конвертер в двоичный код, быстрая редактура ручками в "нотепад", скетч с "прогмем"
А хотелось так: картинка - разбита на строки-числа, строка - 128 битное число, читаем-рисуем побитно от числа к числу. И делаем это по возможности быстро, но!, чисел таких нет, про быстро лучше не вспоминать. Итог: картинку в скетче лучше не видеть! )
Я извиняюсь, а чем плоха запись 16-ти байт в бинарном представлении в одну строку? Конечно запятые и B немножко подпортят восприятие, но это такая мелочь...
А хотелось так: картинка - разбита на строки-числа, строка - 128 битное число, читаем-рисуем побитно от числа к числу.
Вы вообще читаете, что Вам пишут? Или Вы чисто писатель?
Я не знаю, зачем Вам нужно такое извращение, но мой пример легко (путём замены пары строк) переделывается так, чтобы эти длинные строки жили в прогмем. А после этого можно (заменой ещё нескольких строк) сделать так, чтобы эти длинные строки вообще в од не попадали, но жили в ихсоднике и Вы могли бы их редактировать.
Вы это читали? Все делается и совсем нетрудно.
Впрочем, дело Ваше, но проблемы сделать это я не вижу.
А хотелось так: картинка - разбита на строки-числа, строка - 128 битное число, читаем-рисуем побитно от числа к числу. И делаем это по возможности быстро...
И желательно, все это - в толстых рукавицах и стоя на коленях на горохе.
В общем, развлечение для тех еще мазохистов.
Да, соглашусь пожалуй, но конвертер картинок в массивы к библиотекам не помешал бы). Авторам написал, но вряд ли ответят.
конвертер картинок в массивы к библиотекам не помешал бы). Авторам написал, но вряд ли ответят.
Этих конверторов как говна за баней. Когда мне понадобился - один запрос к гуглу всё решил. Там выбирать затрахаешься. Я, правда, не выбирал - взял из первого результата поиска Image2Lcd, он закрыл мою потребность а больше мне от него ничего не нужно. Можете попробовать.