Ecran OLED ATtiny

Bonjour à tous !

J'essaie depuis 2 jours de programmer un écran OLED 0.96" chinois sur mon ATtiny 85.
J'ai réussi à faire fonctionner la lib "SSD1306_minimal.h", mais je n'arrive pas à lui faire imprimer une variable...

Après pas mal de recherches j'ai vu que d'autres lib devraient êtres plus agréables à utiliser (modification de la taille du texte notamment et surtout impression de variables), mais je 'arrive pas à les faire fonctionner...
J'ai testé "SSD1306AsciiWire.h" et "Tiny4kOLED.h" mais même en ouvrant simplement un fichier d'exemple, j'ai des erreurs dès la vérification.
J'imagine que j'ai dû louper une étape, il me manque peut être des fichiers ou je ne sais quoi...

Pour plus d'infos sur le projet, j'essaie de faire une lampe stroboscopique pour mesurer la vitesse de rotation de moteurs. La partie flash pilotée par un potar fonctionne bien mais pas moyen d'imprimer ma variable "RPM" sur l'écran Oled...

voici les messages d'erreurs.

Merci d'avance

Arduino : 1.8.13 (Windows 10), Carte : "ATtiny, ATtiny85, 1 MHz (internal)"





















In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In member function 'void SPISettings::init_AlwaysInline(uint32_t, uint8_t, uint8_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: error: 'SPE' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:16: note: suggested alternative: 'SPH'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: error: 'MSTR' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:27: note: suggested alternative: 'PSTR'

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: error: 'DORD' was not declared in this scope

     spcr = _BV(SPE) | _BV(MSTR) | ((bitOrder == LSBFIRST) ? _BV(DORD) : 0) |

                                                                 ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:146:65: note: suggested alternative: 'DDRB'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::beginTransaction(SPISettings)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: error: 'SPCR' was not declared in this scope

     SPCR = settings.spcr;

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:203:5: note: suggested alternative: 'EECR'

     SPCR = settings.spcr;

     ^~~~

     EECR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: error: 'SPSR' was not declared in this scope

     SPSR = settings.spsr;

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:204:5: note: suggested alternative: 'ACSR'

     SPSR = settings.spsr;

     ^~~~

     ACSR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint8_t SPIClass::transfer(uint8_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: error: 'SPDR' was not declared in this scope

     SPDR = data;

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:209:5: note: suggested alternative: 'EEDR'

     SPDR = data;

     ^~~~

     EEDR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: error: 'SPSR' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ; // wait

              ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:14: note: suggested alternative: 'ACSR'

     while (!(SPSR & _BV(SPIF))) ; // wait

              ^~~~

              ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: error: 'SPIF' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ; // wait

                         ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:217:25: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static uint16_t SPIClass::transfer16(uint16_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: error: 'SPCR' was not declared in this scope

     if (!(SPCR & _BV(DORD))) {

           ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:11: note: suggested alternative: 'EECR'

     if (!(SPCR & _BV(DORD))) {

           ^~~~

           EECR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: error: 'DORD' was not declared in this scope

     if (!(SPCR & _BV(DORD))) {

                      ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:223:22: note: suggested alternative: 'DDRB'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: error: 'SPDR' was not declared in this scope

       SPDR = in.msb;

       ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:224:7: note: suggested alternative: 'EEDR'

       SPDR = in.msb;

       ^~~~

       EEDR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:16: note: suggested alternative: 'ACSR'

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

                ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:226:27: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:16: note: suggested alternative: 'ACSR'

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

                ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:230:27: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: error: 'SPDR' was not declared in this scope

       SPDR = in.lsb;

       ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:233:7: note: suggested alternative: 'EEDR'

       SPDR = in.lsb;

       ^~~~

       EEDR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:16: note: suggested alternative: 'ACSR'

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

                ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:235:27: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:16: note: suggested alternative: 'ACSR'

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

                ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:239:27: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::transfer(void*, size_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: error: 'SPDR' was not declared in this scope

     SPDR = *p;

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:247:5: note: suggested alternative: 'EEDR'

     SPDR = *p;

     ^~~~

     EEDR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: error: 'SPSR' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:16: note: suggested alternative: 'ACSR'

       while (!(SPSR & _BV(SPIF))) ;

                ^~~~

                ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: error: 'SPIF' was not declared in this scope

       while (!(SPSR & _BV(SPIF))) ;

                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:250:27: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: error: 'SPSR' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ;

              ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:14: note: suggested alternative: 'ACSR'

     while (!(SPSR & _BV(SPIF))) ;

              ^~~~

              ACSR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: error: 'SPIF' was not declared in this scope

     while (!(SPSR & _BV(SPIF))) ;

                         ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:255:25: note: suggested alternative: 'WDIF'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setBitOrder(uint8_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: error: 'SPCR' was not declared in this scope

     if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);

                               ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:31: note: suggested alternative: 'EECR'

     if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);

                               ^~~~

                               EECR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: error: 'DORD' was not declared in this scope

     if (bitOrder == LSBFIRST) SPCR |= _BV(DORD);

                                           ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:292:43: note: suggested alternative: 'DDRB'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: error: 'SPCR' was not declared in this scope

     else SPCR &= ~(_BV(DORD));

          ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:10: note: suggested alternative: 'EECR'

     else SPCR &= ~(_BV(DORD));

          ^~~~

          EECR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: error: 'DORD' was not declared in this scope

     else SPCR &= ~(_BV(DORD));

                        ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:293:24: note: suggested alternative: 'DDRB'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setDataMode(uint8_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: error: 'SPCR' was not declared in this scope

     SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode;

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:298:5: note: suggested alternative: 'EECR'

     SPCR = (SPCR & ~SPI_MODE_MASK) | dataMode;

     ^~~~

     EECR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::setClockDivider(uint8_t)':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: error: 'SPCR' was not declared in this scope

     SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK);

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:303:5: note: suggested alternative: 'EECR'

     SPCR = (SPCR & ~SPI_CLOCK_MASK) | (clockDiv & SPI_CLOCK_MASK);

     ^~~~

     EECR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: error: 'SPSR' was not declared in this scope

     SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK);

     ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:304:5: note: suggested alternative: 'ACSR'

     SPSR = (SPSR & ~SPI_2XCLOCK_MASK) | ((clockDiv >> 2) & SPI_2XCLOCK_MASK);

     ^~~~

     ACSR

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::attachInterrupt()':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: error: 'SPCR' was not declared in this scope

   inline static void attachInterrupt() { SPCR |= _BV(SPIE); }

                                          ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:42: note: suggested alternative: 'EECR'

   inline static void attachInterrupt() { SPCR |= _BV(SPIE); }

                                          ^~~~

                                          EECR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: error: 'SPIE' was not declared in this scope

   inline static void attachInterrupt() { SPCR |= _BV(SPIE); }

                                                      ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:309:54: note: suggested alternative: 'ACIE'

In file included from C:\Users\remip\Documents\Arduino\libraries\SSD1306Ascii-master\examples\Spi128x64\Spi128x64.ino:3:0:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h: In static member function 'static void SPIClass::detachInterrupt()':

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: error: 'SPCR' was not declared in this scope

   inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }

                                          ^~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:42: note: suggested alternative: 'EECR'

   inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }

                                          ^~~~

                                          EECR

In file included from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\io.h:99:0,

                 from c:\users\remip\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino7\avr\include\avr\pgmspace.h:90,

                 from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

                 from sketch\Spi128x64.ino.cpp:1:

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: error: 'SPIE' was not declared in this scope

   inline static void detachInterrupt() { SPCR &= ~_BV(SPIE); }

                                                       ^

C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src/SPI.h:310:55: note: suggested alternative: 'ACIE'

exit status 1

Erreur de compilation pour la carte ATtiny



Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

On retrouve ces mêmes messages d'erreur dans cette discussion :

@johnwasser répond ceci:

It looks to me like the SPI library that was selected does not support the ATtiny85 processor. Are you sure your sketch will run on an ATtiny85?

Moi je ne connais pas l'Attiny85, mais c'est une piste à explorer. Il existe la bibliothèque TinySPI mais je ne sais pas si elle est compatible avec celle de ton écran.

Ton écran a un driver SSD1306. Il faudrait chercher une bibliothèque pour cet écran.
J'ai trouvé celle-ci mais elle concerne le SD1331. Il fait 96x64, ce n'est peut-être pas la même résolution.

Es-tu sûr que ton écran est en SPI ? As-tu un lien vers le site vendeur ou une datasheet ? Voire une photo ?
Pour un SSD1306 en I2C, j'ai trouvé cette bibliothèque :

D'ailleurs Tiny4kOLED est aussi pour un écran I2C.
Si ton écran est bien en SPI, la réponse est ici :

Voir la réponse de @olikraus : bibliothèque u8g2 avec le constructeur U8X8_SSD1306_128X64_NONAME_SW_I2C

Il y a aussi cette bibliothèque, mentionnée dans le même post :

Merci pour ta réponse.
Mon écran est en I2C, d'après ce que j'avais vu la bibliothèque SSD1306_minimal.h était pour I2c et le seul vrai problème qu'elle me pose est qu'elle ne permet pas (ou alors je n'ai pas trouvé) d'afficher une variable. Pour les 2 autres que j'ai citées, je ne sais pas j'avoue que je m'y perds, surtout dans les pages en anglais (pas pratique pour coder...).

Je vais regarder la bibliothèque I2C que tu as trouvée, potasser un peu ce que tu as envoyé et je vous tiendrai au courant.

Merci

Essaie ceci avec SSD1306_minimal

// Circuits DIY
// For Complete Details Visit -> https://circuits-diy.com  

#include "SSD1306_minimal.h"
#include <avr/pgmspace.h>

#define DEG "\xa7" "C"

SSD1306_Mini oled; // Declare the OLED object

void splash() {
 oled.startScreen();
 oled.clear(); // Clears the display

 oled.cursorTo(0, 0); // x:0, y:0
 oled.printString("   Hello World!");
 oled.cursorTo(0, 10); // x:0, y:23
 oled.printString("     ATtiny85!");
 oled.cursorTo(0, 20); // x:0, y:23
 oled.printString("   Circuits DIY");
 oled.cursorTo(0, 30); // x:0, y:23
 oled.printString("    JLCPCB.com"); 
}

void setup() {
 oled.init(0x3C); // Initializes the display to the specified address
 oled.clear(); // Clears the display
 delay(1000); // Delay for 1 second
 splash(); // Write something to the display (refer to the splash() method
}

As-tu essayé print ou println tout simplement ?

int n=20;
oled.cursorTo(0, 0);
oled.println(n);
float x = -2.3;
oled.println(x,2);

Si tu jettes un oeil ici, il n'y a que deux méthodes : printChar() et prinString() :

Mais j'estime tout de même que convertir un integer en chaîne ne nécessite pas un effort colossal.

oups j' avais vu "variable", J' avais pas pensé a nécessairement un nombre...

@ZX80 J'ai testé ce code il fonctionne bien mais impossible d'afficher des nombres provenant d'une variable int

@lesept les fonctions print et println ne fonctionne pas j'avais essayé aussi...

@hbachetti j'avais en effet consulté cette doc et j'ai testé les 2 méthodes d'impression. Débutant je ne comprends pas tous c'est la première fois que j'utilise un écran I2C et la première fois également que je suis sur ATtiny...

La j'avoue que j'ai pas du tout compris ce que ça veut dire...
[Edit] si en fait tu veux dire convertir ma int en char c'est ça ?)

Si j'essaie d'imprimer une variable int j'ai des caractères spéciaux à l'écran. Ce qui du coup semblerait normal ? Du coup aucun moyen d'afficher ma variable numérique avec cette bibliothèque ?

Tu peux utiliser sprintf si cette instruction est supportée par l'Attiny.

https://cplusplus.com/reference/cstdio/sprintf/

Peut-etre comme cela
https://forum.arduino.cc/t/itoa-function/975977

J'ai regardé tout ça et j'avoue que je n'y comprends rien :frowning:
Comment fonctionne sprintf ? C'est du chinois pour moi... Vous auriez un site qui apprend tout depuis la base ? Toutes ces pages sont très difficiles à comprendre pour un débutant...

[EDIT] C'est bon j'ai parcouru pleiiiin de sites qui parlaient de la fonction sprintf et j'ai finalement compris (je pense) plus ou moins comment elle fonctionne. En tout cas ça marche j'ai bien ma valeur à l'écran merci :smiley:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.