Мадиас
Солнце 07 октября 2018 г., 21:43
Привет,
Когда я работаю над своим проектом MP3 -плееры, мне нужно было сделать некоторые адаптации к библиотеке ADAFRIT_SSD1306 (включенная в Core Rogers, адаптированную мне несколько лет назад).
Предупреждение: Эта библиотека была протестирована только с OLED 128x64 I2C без. Для SPI вам нужно адаптировать мои новые функции I2C!
Здесь некоторые изменения:
Полная скорость HW i2c снова (был изменен кем -то, но забыл вставить проволоку.SetClock (400000) после провода.начинать
инкапсулировал весь экранный буфер От частного до общественности. Это «стоит» только 1 кб (на дисплее 128x64), но теперь вы можете скопировать буфер во временный массив, сделать что -нибудь на экране и после этого, разместив состояние перед экраном снова. Итак, другими словами: вам не нужно позаботиться о том, что было на экране раньше. Сохраняет много строк кода
Удалить предварительно построенные логотипы Adafruit в буфере: Сохраняет флэш -память (около 1 кб)
Не только полное обновление экрана, но и страницы:
Хорошо, экран составляет всего 1024 байта, но с i2c это может быть много времени, поэтому я прочитал таблицу данных SSD1306 и признал, что экран также может быть обновлен на страницах (8 строк), поэтому у вас есть 8 страниц на 128x64 дисплей. Вот практический пример:
Когда я работаю над своим проектом MP3 -плееры, мне нужно было сделать некоторые адаптации к библиотеке ADAFRIT_SSD1306 (включенная в Core Rogers, адаптированную мне несколько лет назад).
Предупреждение: Эта библиотека была протестирована только с OLED 128x64 I2C без. Для SPI вам нужно адаптировать мои новые функции I2C!
Здесь некоторые изменения:
Полная скорость HW i2c снова (был изменен кем -то, но забыл вставить проволоку.SetClock (400000) после провода.начинать
инкапсулировал весь экранный буфер От частного до общественности. Это «стоит» только 1 кб (на дисплее 128x64), но теперь вы можете скопировать буфер во временный массив, сделать что -нибудь на экране и после этого, разместив состояние перед экраном снова. Итак, другими словами: вам не нужно позаботиться о том, что было на экране раньше. Сохраняет много строк кода
Удалить предварительно построенные логотипы Adafruit в буфере: Сохраняет флэш -память (около 1 кб)
Не только полное обновление экрана, но и страницы:
Хорошо, экран составляет всего 1024 байта, но с i2c это может быть много времени, поэтому я прочитал таблицу данных SSD1306 и признал, что экран также может быть обновлен на страницах (8 строк), поэтому у вас есть 8 страниц на 128x64 дисплей. Вот практический пример:
void oled_invert_entry(byte page) {
for (int z = 0; z < 128; z++) {
display.buffer[z + page* 128] = ~display.buffer[z + page * 128]; // invert page
}
display.display(page, page );
}
Мадиас
Солнце 07 октября 2018 г. 22:00
И просто для удовольствия:
Супер быстрая прокрутка программного обеспечения одной линии с длинной строкой (в противоположность бесполезному прокрутке HW):
Супер быстрая прокрутка программного обеспечения одной линии с длинной строкой (в противоположность бесполезному прокрутке HW):
void scrollText(String text, byte txtsize, byte page )
{
display.setTextColor(0, 1);
display.setTextSize(txtsize);
display.setTextWrap(false);
int x = display.width();
int minX = -6 * txtsize * text.length(); // 6 = 6 pixels/character * text size
for (int y = 0; y < 6 * txtsize * text.length() + 6 * 20 * txtsize; y++) { //Full text length plus 20 additional character
if (encflag || buttonflag) {
return;
display.setTextColor(1, 0);
}
display.fillRect(0, page * 8 , 128, 8 * txtsize, 1);
display.setCursor(x, (0 + page * 8) );
display.print(text);
display.display(page, page + txtsize - 1 );
delay(10);
if (--x < minX) x = display.width();
}
}
Zoomx
Пн, 8 октября 2018 г. 8:04
Молодец, я должен проверить вашу библиотеку однажды, я надеюсь в следующие дни. Мне очень нравится эти маленькие OLED.
Небольшая опечатка 12864 Дисплей Мне потребовалось некоторое время, чтобы понять, что у него отсутствовал x. Утром в понедельник я взял свой эспрессо, но кажется, мне нужно больше!
Небольшая опечатка 12864 Дисплей Мне потребовалось некоторое время, чтобы понять, что у него отсутствовал x. Утром в понедельник я взял свой эспрессо, но кажется, мне нужно больше!
Хейсан
Пн, 8 октября 2018 г. 8:41
Обратите внимание, что лицензия Adafruit требует сохранения экрана Splash.
Мадиас
Пн, 8 октября 2018 г. 10:08
[Хейсан - Пн, 8 октября 2018 г. 8:41] - Обратите внимание, что лицензия Adafruit требует сохранения экрана Splash.Что заставляет вас думать, что?
https: // github.com/adafruit/adafruit_ss ... iCense.текст
1. Перераспределение исходного кода должно сохранить вышеуказанное авторское право
Обратите внимание, этот список условий и следующее отказ от ответственности. лицензия.TXT включен. 2. Перераспределение в двоичной форме должно воспроизводить вышеуказанное авторское право
обратите внимание, этот список условий и следующее отказ от ответственности в
Документация и/или другие материалы, предоставленные с распределением. см. 1) 3. Ни имя владельцев авторских прав, ни
Названия его участников могут использоваться для поддержки или продвижения продуктов
получен из этого программного обеспечения без конкретного предварительного письменного разрешения. бла.
Мадиас
Пн, 8 октября 2018 г. 10:17 утра
[Zoomx - Пн, 8 октября 2018 г. 8:04] - Молодец, я должен проверить вашу библиотеку однажды, я надеюсь в следующие дни. Мне очень нравится эти маленькие OLED.Исправлено! Теперь IAMX
Небольшая опечатка 12864 Дисплей Мне потребовалось некоторое время, чтобы понять, что у него отсутствовал x. Утром в понедельник я взял свой эспрессо, но кажется, мне нужно больше!
Хейсан
Пн, 8 октября 2018 г. 10:26
https: // github.com/adafruit/adafruit_ss ... PP#L14-L16
Написано Limor Fried/Ladyada для Adafruit Industries.
Лицензия BSD, проверка лицензии.TXT для получения дополнительной информации
Весь текст выше, а экран брызг ниже должен быть включен в любое перераспределение
Написано Limor Fried/Ladyada для Adafruit Industries.
Лицензия BSD, проверка лицензии.TXT для получения дополнительной информации
Весь текст выше, а экран брызг ниже должен быть включен в любое перераспределение
Мадиас
Пн, 8 октября 2018 г. 11:06
Хороший улов, Хейсан!
Но это полностью противоречит основному текстовому файлу лицензии здесь: https: // github.com/adafruit/adafruit_ss ... iCense.текст
Я открыл проблему на GitHub, потому что это бессмысленное вздутие живота флэш -память с примерно 1 кб с глупым логотипом.
Но это полностью противоречит основному текстовому файлу лицензии здесь: https: // github.com/adafruit/adafruit_ss ... iCense.текст
Я открыл проблему на GitHub, потому что это бессмысленное вздутие живота флэш -память с примерно 1 кб с глупым логотипом.
Мадиас
Пн, 8 октября 2018 г. 11:11
Хорошо, нам не нужно сохранять это (лучше: мы должны «держать» это, но прокомментируйте это....), читать здесь:
https: // github.com/adafruit/adafruit_ssd1306/выпуски/117
Итак, ребята: Пожалуйста, после загрузки включите оригинальный файл логотипа и прокомментируйте его....
https: // github.com/adafruit/adafruit_ssd1306/выпуски/117
Итак, ребята: Пожалуйста, после загрузки включите оригинальный файл логотипа и прокомментируйте его....
Хейсан
Пн, 8 октября 2018 г., 11:21
[Мадиас - Пн, 8 октября 2018 г. 11:11] - Хорошо, нам не нужно сохранять это, читать здесь:Да, это была моя просьба. Не на 100% уверен, является ли это одноразовым одобрением или общим одобрением для смены условий лицензии...
https: // github.com/adafruit/adafruit_ssd1306/выпуски/117
Лично я действительно хочу очистить место всех этих драйверов, с надлежащей абстракцией и более чистыми лицензиями - но у меня просто нет времени.
В качестве примечания, функции пикселей с переключением битов быстрее на STM32, чем в таблицах поиска, поэтому, если вы вернете их, вы можете получить немного больше производительности.
Mrburnette
Пн, 8 октября 2018 г. 12:21
[Хейсан - Пн, 8 октября 2018 г. 11:21] - ...Трата времени, ИМО. Вот почему многие (большинство) коммерческих усилий избегают (отклонить, избегать, наказать сотрудников до завершения) за использование кода с открытым исходным кодом. Я помню, как моя старая компания «настаивала» на том, что автор свободного программного обеспечения принимает 50 тысяч долларов и подпишет лицензию правого использования. У законных была такая же проблема с Linux OS, и потребовались годы, чтобы проработать положения о возмещении... Нет ничего "бесплатно".
Да, это была моя просьба. Не на 100% уверен, является ли это одноразовым одобрением или общим одобрением для смены условий лицензии...
Лично я действительно хочу Чистая комната все эти водители, с надлежащей абстракцией и более чистыми лицензиями - но у меня просто нет времени.
В качестве примечания, функции пикселей с переключением битов быстрее на STM32, чем в таблицах поиска, поэтому, если вы вернете их, вы можете получить немного больше производительности.
В случае использования хобби (не сдача), просто сделайте то, что хотите, с модификациями LIB. Проблема заключается в переоценке для загрузки и публикации более чем фрагмента. #ifdef/#logic ifndef добавлена в повторные либера.
Луча
Мадиас
Пн, 8 октября 2018 г., 21:43
Вернуться к теме:
Хейсан: У вас есть примеры кода на GitHub, я ничего от вас не нашел.
Основная проблема с I2C OLED - это....I2c, лучше назвать библиотеку проводов. В качестве «функции совместимости» буфер отправки составляет всего 32 КБ. Таким образом, вы не можете отправить весь дисплей -буфер сразу. Но достаточно грустно, вы не можете использовать «Полный» 32 КБ:
Хейсан: У вас есть примеры кода на GitHub, я ничего от вас не нашел.
Основная проблема с I2C OLED - это....I2c, лучше назвать библиотеку проводов. В качестве «функции совместимости» буфер отправки составляет всего 32 КБ. Таким образом, вы не можете отправить весь дисплей -буфер сразу. Но достаточно грустно, вы не можете использовать «Полный» 32 КБ:
// I2C
for (uint16_t i=0; i<(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8); i++) {
// send a bunch of data in one xmission
Wire.beginTransmission(_i2caddr);
WIRE_WRITE(0x40);
for (uint8_t x=0; x<16; x++) {
WIRE_WRITE(buffer[i]);
i++;
}
i--;
Wire.endTransmission();
}
Mrburnette
Пн, 8 октября 2018 г. 22:39
[Мадиас - Пн, 8 октября 2018 г. 9:43 вечера] - ...Какая библиотека использует для вашего Nokia5110? *насмешка*http: // Playground.Ардуино.cc/code/pcd8544
....
Луча
Zoomx
Ср 10 октября 2018 г. 12:24
[Мадиас - Пн, 8 октября 2018 г. 9:43 вечера] - Рэй: Есть гораздо лучшие библиотеки SSD1306, как Adafruit One,Если мне нужны только символы ASCII, я использую этот
Текст только библиотека Arduino для SSD1306 OLED -дисплеев
https: // github.com/greiman/ssd1306ascii
у этого очень маленькое использование вспышки и оперативной памяти.
Mrburnette
Ср 10 октября 2018 г. 13:55
«Лучше» - относительное слово... При подходе к дизайну следует выбрать LIBS на основе потребностей... Большие, толстые либера & Шрам.
Я также «инкапсулирует» либера. Например, функция Nokia LIB «ясно» не сбросила x, y. Редактирование Clear, чтобы включить x = 0, y = 0 Сохранить несколько строк исходного кода. Я также внес несколько изменений в то, как Ladyada обрабатывала свой 2-линический GPS-буфер.
Я просто не использую библиотеки, которые не понимаю... Использование библиотеки - удобство, но никогда не должно быть костылем.
Луча
Я также «инкапсулирует» либера. Например, функция Nokia LIB «ясно» не сбросила x, y. Редактирование Clear, чтобы включить x = 0, y = 0 Сохранить несколько строк исходного кода. Я также внес несколько изменений в то, как Ladyada обрабатывала свой 2-линический GPS-буфер.
Я просто не использую библиотеки, которые не понимаю... Использование библиотеки - удобство, но никогда не должно быть костылем.
Луча