Better integration of SPI with DMA and IRQ. Using only 'End' IRQ. Perf could be improved by using 'Started' IRQ to prepare the next buffer while the current one is beeing sent.

This commit is contained in:
JF
2020-01-26 13:37:10 +01:00
parent eb7a1b3ac9
commit 5fa4f5abe0
10 changed files with 223 additions and 164 deletions

View File

@@ -37,8 +37,8 @@ void St7789::WriteData(uint8_t data) {
}
void St7789::WriteSpi(const uint8_t* data, size_t size, size_t repeat) {
spi.Write(data, size, repeat);
void St7789::WriteSpi(const uint8_t* data, size_t size) {
spi.Write(data, size);
}
void St7789::SoftwareReset() {
@@ -142,12 +142,8 @@ void St7789::BeginDrawBuffer(uint16_t x, uint16_t y, uint16_t width, uint16_t he
nrf_gpio_pin_set(pinDataCommand);
}
void St7789::EndDrawBuffer() {
spi.Wait();
}
void St7789::NextDrawBuffer(const uint8_t *data, size_t size, size_t repeat) {
WriteSpi(data, size, repeat);
void St7789::NextDrawBuffer(const uint8_t *data, size_t size) {
WriteSpi(data, size);
}
void St7789::HardwareReset() {
@@ -178,5 +174,3 @@ void St7789::Wakeup() {
NormalModeOn();
DisplayOn();
}