Стивестронг
Сб 05 августа 2017 г. 13:12
Всем привет,
Недавно я был вовлечен в проект, связанный с ILI9341 и пропустил некоторые функции, которые уже были реализованы в оригинальной Adafruit Lib, но еще не в нашем варианте STM32.
Поэтому я добавил следующие функции в Библиотека Adafruit_ili9341_stm из репо Роджера:
- Push (RGB565) массив данных пикселей в ЖК -дисплей (уже совершается в репо Роджере)
- Возможна передавать ссылку на объект класса SPI и тактовую частоту SPI в основном эскизе без редактирования LIB -файла
- Исправить чтение Single + реализация Чтение нескольких пикселей
- Некоторые улучшения скорости (оптимизация DC и CS PIN -комбинезон)
А GraphicStest был расширен с помощью однократного теста с множественным пикселем.
Фактический эталон (процессор@72mhz, spi_1@36 МГц):
Недавно я был вовлечен в проект, связанный с ILI9341 и пропустил некоторые функции, которые уже были реализованы в оригинальной Adafruit Lib, но еще не в нашем варианте STM32.
Поэтому я добавил следующие функции в Библиотека Adafruit_ili9341_stm из репо Роджера:
- Push (RGB565) массив данных пикселей в ЖК -дисплей (уже совершается в репо Роджере)
- Возможна передавать ссылку на объект класса SPI и тактовую частоту SPI в основном эскизе без редактирования LIB -файла
- Исправить чтение Single + реализация Чтение нескольких пикселей
- Некоторые улучшения скорости (оптимизация DC и CS PIN -комбинезон)
А GraphicStest был расширен с помощью однократного теста с множественным пикселем.
Фактический эталон (процессор@72mhz, spi_1@36 МГц):
- Новый ILI9341.JPG (80.28 киб) просмотрено 1402 раз
Пито
Сб 05 августа 2017 14:07
Под Slaeber, последнее Роджером (с SPI, как указано выше), Maple Mini @72mhz, SPI2 (18 МГц)
ILI9341 Test!
Display Power Mode: 0x9C
MADCTL Mode: 0x48
Pixel Format: 0x5
Image Format: 0x9C
Self Diagnostic: 0xC0
Read single pixel test
------------------------------
Write pixel: 0x1234
Read pixel: 0x1234
Read multiple pixel test
------------------------------
Write pixels: 0x1234, 0x5678, 0x9012, 0x3456
Read 4 pixels: 0x1234, 0x5678, 0x9012, 0x3456
Benchmark Time (microseconds)
Screen fill 341489
Text 43819
Lines 226266
Horiz/Vert Lines 29315
Rectangles (outline) 19360
Rectangles (filled) 709364
Circles (filled) 154906
Circles (outline) 180807
Triangles (outline) 51422
Triangles (filled) 261140
Rounded rects (outline) 67645
Rounded rects (filled) 789560
Done!
Стивестронг
Сб 05 августа 2017 г., 19:39
Пито, спасибо за тестирование.
Rogerclark
Сб 05 августа 2017 11:17
Стив
Спасибо
Я протестировал последнюю библиотеку, используя копию в ZIP, и, похоже, работает нормально.
Я не уверен, почему, когда я вытащил из твоего репо, это не сработало для меня.
Одна незначительная вещь, которая поймала меня с новой версией графического теста, заключается в том, что она не работает, если серийный монитор не открыт.
Я также думаю, что могут быть конфликты, требуя потоковой передачи Arduino для использования Graphics LIB, если мы не включим эту LIB как часть основной установки.
Но люди, возможно, уже установили, и нам нужно сохранить нашу копию, в курсе главной версии
Я думаю, что легче просто включить потоковую передачу.H в примере папки и ссылка на эту версию.
Если мы собираемся обновить графический тест, мы должны удалить все макросы f (), используемые при печати текста и т. Д
Мне нужно будет сравнить скорость / время с предыдущей версией LIB, просто чтобы убедиться, что все выглядят мне нормально.
КСТАТИ.
Я также пытался запустить его с дифференцированной оптимизацией и, кажется, работает нормально.
Странно -O2 для текста медленнее, чем -os, но -O3 более быстрее, а -O3 + LTO даже быстрее, чем это.
Спасибо
Я протестировал последнюю библиотеку, используя копию в ZIP, и, похоже, работает нормально.
Я не уверен, почему, когда я вытащил из твоего репо, это не сработало для меня.
Одна незначительная вещь, которая поймала меня с новой версией графического теста, заключается в том, что она не работает, если серийный монитор не открыт.
Я также думаю, что могут быть конфликты, требуя потоковой передачи Arduino для использования Graphics LIB, если мы не включим эту LIB как часть основной установки.
Но люди, возможно, уже установили, и нам нужно сохранить нашу копию, в курсе главной версии
Я думаю, что легче просто включить потоковую передачу.H в примере папки и ссылка на эту версию.
Если мы собираемся обновить графический тест, мы должны удалить все макросы f (), используемые при печати текста и т. Д
Мне нужно будет сравнить скорость / время с предыдущей версией LIB, просто чтобы убедиться, что все выглядят мне нормально.
КСТАТИ.
Я также пытался запустить его с дифференцированной оптимизацией и, кажется, работает нормально.
Странно -O2 для текста медленнее, чем -os, но -O3 более быстрее, а -O3 + LTO даже быстрее, чем это.
victor_pv
Солнце 06 августа 2017 14:53
Почему результаты испытаний Пито намного медленнее, чем у Стива?
Стивестронг
Солнце 06 августа 2017 14:59
Потому что я тестировал на SPI_1 @36 МГц, и PITO протестировал на SPI_2 @18MHZ.
Мэнни
Ср 16 августа 2017 г., 17:50
Привет, Стив, я попробовал эскиз Bechmark, и я не смог получить никакого дисплея на экране, если не использовал Spiclass
static SPIClass _spi(1);
tft.begin(_spi); //worked
tft.begin(); // no display
Martinayotte
Ср 16 августа 2017 г., 17:52
@Manny, почему вы публикуете в 3 раза одну и ту же посту, используя ответы ?
Мэнни
Ср 16 августа 2017 г., 17:57
[Martinayotte - Ср 16 августа 2017 г., 17:52] - @Manny, почему вы публикуете в 3 раза одну и ту же посту, используя ответы ?Хаха, должно быть, теряет это, даже не позволит мне удалить их, потому что на них тоже ответили
Стивестронг
Чт 17 августа 2017 г., 17:14
Ребята, я на Холлидее в настоящее время, вернутся через неделю или около того.
Rogerclark
Чт 17 августа 2017 г., 22:25
Поскольку последний код Стивса, кажется, работает нормально, я планировал обновить репо с его копией этой библиотеки, а также его обновленной Spi Lib.
Но я был слишком занят другими вещами, чтобы сделать это
Но я был слишком занят другими вещами, чтобы сделать это
victor_pv
Чт 17 августа 2017 г., 22:46
[Стивестронг - Четверг 17 августа 2017 г., 17:14] - Ребята, я на Холлидее в настоящее время, вернутся через неделю или около того.Стив, когда вы вернетесь, если вы еще этого не сделали, вы можете удалить эту линию, остается от того, когда передачи DMA были сделаны непосредственно в библиотеке, прежде чем добавить DMASEND:
https: // github.com/stevstrong/arduino_s ... СТМ.CPP#L7
Еще одна вещь, не будет использовать dmasendasync здесь, так как линия CS может быть переключена до завершения передачи?
https: // github.com/stevstrong/arduino_s ... М.CPP#2243
Поскольку мы можем использовать обратные вызовы DMA с помощью SPI, возможно, у нас может вместо этого быть функция переключать PIN -код CS, когда при вызове?
Мэнни
Чт 17 августа 2017 г., 11:13
[Rogerclark - Четверг 17 августа 2017 г. 22:25] - Поскольку последний код Стивса, кажется, работает нормально, я планировал обновить репо с его копией этой библиотеки, а также его обновленной Spi Lib.Я имел ошибки с компиляцией с Spi Lib и SDFAT, другие библиотеки могут быть затронуты.
Но я был слишком занят другими вещами, чтобы сделать это
Rogerclark
Чт 17 августа 2017 г., 23:30
ХОРОШО.
Я только проверил код Стива с помощью ILI9341 LIB. Его необходимо протестировать с более широким диапазоном либеров E.глин. Сд
Я только проверил код Стива с помощью ILI9341 LIB. Его необходимо протестировать с более широким диапазоном либеров E.глин. Сд
Стивестронг
Пт 18 августа 2017 г. 6:49
Виктор, я исправил то, что вы упомянули.
Однако, поскольку меня нет дома, я не могу проверить это.
Если вы обнаружите некоторые ошибки или имеете ошибки компиляции/сборки, сообщите об этом на GitHub.
Однако, поскольку меня нет дома, я не могу проверить это.
Если вы обнаружите некоторые ошибки или имеете ошибки компиляции/сборки, сообщите об этом на GitHub.
Стивестронг
Пт, сентябрь 01, 2017 14:37
[Мэнни - Четверг 17 августа 2017 г. 11:13] - Я имел ошибки с компиляцией с Spi Lib и SDFAT, другие библиотеки могут быть затронуты.Мэнни, не могли бы вы опубликовать здесь, какие сообщения об ошибках вы получаете?
Мэнни
Солнце 17 сентября 2017 г., 17:35
[Стивестронг - Пт, сентябрь 01, 2017 14:37] - Мэнни, не могли бы вы опубликовать здесь, какие сообщения об ошибках вы получаете?Лучше поздно, чем никогда
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SdFat\SdSpiSTM32F1.cpp: In member function 'void SdSpi::send(const uint8_t*, size_t)':
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SdFat\SdSpiSTM32F1.cpp:91:20: error: call of overloaded 'write(const uint8_t*&, size_t&)' is ambiguous
SPI.write (buf, n);
^
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SdFat\SdSpiSTM32F1.cpp:91:20: note: candidates are:
In file included from I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SdFat\SdSpi.h:124:0,
from I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SdFat\SdSpiSTM32F1.cpp:23:
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:274:10: note: void SPIClass::write(uint16, uint32)
void write(uint16 data, uint32 n);
^
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:274:10: note: no known conversion for argument 1 from 'const uint8_t* {aka const unsigned char*}' to 'uint16 {aka short unsigned int}'
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:281:10: note: void SPIClass::write(void*, uint32)
void write(void * buffer, uint32 length);
^
I:\Users\Manny\Documents\Arduino\hardware\Arduino_STM32\STM32F1\libraries\SPI\src/SPI.h:281:10: note: no known conversion for argument 1 from 'const uint8_t* {aka const unsigned char*}' to 'void*'
Стивестронг
Пн 18 сентября 2017 г. 12:08
Мэнни, я вижу, что вы используете не-DMA-трансферы. Есть ли причина, по которой вы не используете передачи DMA?
В любом случае, я опубликовал два PRS для репо Греймана, чтобы решить эту проблему. https: // github.com/greiman/sdfat/utles
В любом случае, я опубликовал два PRS для репо Греймана, чтобы решить эту проблему. https: // github.com/greiman/sdfat/utles
Мэнни
Пн 18 сентября 2017 г., 19:27
[Стивестронг - Пн 18 сентября 2017 12:08] - Мэнни, я вижу, что вы используете не-DMA-трансферы. Есть ли причина, по которой вы не используете передачи DMA?Хорошее место на DMA...В любом случае, скачал репо Греймана, и все это работает с Adafruit_ili9341_stm и SPI Libs из вашего репозиции.
В любом случае, я опубликовал два PRS для репо Греймана, чтобы решить эту проблему. https: // github.com/greiman/sdfat/utles