---------------------------------------------------------- speed test results: in AVR best performance mode -> about 6.9 Mbps in compatibility mode (SPI.transfer(c)) -> about 4 Mbps
| 119 | // in AVR best performance mode -> about 6.9 Mbps |
| 120 | // in compatibility mode (SPI.transfer(c)) -> about 4 Mbps |
| 121 | inline void Arduino_ST7789::writeSPI(uint8_t c) |
| 122 | { |
| 123 | #ifdef COMPATIBILITY_MODE |
| 124 | SPI.transfer(c); |
| 125 | #else |
| 126 | SPDR = c; |
| 127 | /* |
| 128 | asm volatile("nop"); // 8 NOPs seem to be enough for 16MHz AVR @ DIV2 to avoid using while loop |
| 129 | asm volatile("nop"); |
| 130 | asm volatile("nop"); |
| 131 | asm volatile("nop"); |
| 132 | asm volatile("nop"); |
| 133 | asm volatile("nop"); |
| 134 | asm volatile("nop"); |
| 135 | asm volatile("nop"); |
| 136 | */ |
| 137 | asm volatile("rjmp .+0\n"); |
| 138 | asm volatile("rjmp .+0\n"); |
| 139 | asm volatile("rjmp .+0\n"); |
| 140 | asm volatile("rjmp .+0\n"); |
| 141 | //while(!(SPSR & _BV(SPIF))) ; |
| 142 | #endif |
| 143 | } |
| 144 | |
| 145 | // ---------------------------------------------------------- |
| 146 | // fast method to send multiple 16-bit values via SPI |
nothing calls this directly
no outgoing calls
no test coverage detected