Ik heb een hier een oled display 128*64 van adafruit
en met de bijhorende library en alles werkte zoals het hoorde.
nu heb ik een tijdje geleden mn computer leeggemaakt (het was weer nodig , teveel rotzooi erop)
en nu heb ik een probleem met mn oled scherm ik krijg steeds foutmeldingen in de arduino IDE
als ik het voorbeeldprogramma van adafruit gebruik.
Ik gebruik arduino 1.5.7 maar met 1.0.6 het ik hetzelfde.
dit zijn de foutmeldingen :
Arduino: 1.5.7 (Windows 7), Board: "Arduino Uno"
Using library Wire in folder: C:\Users\Gert\Documents\Arduino\libraries\Wire (legacy)
Using library AdafruitGFXLibrarymaster in folder: C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster (legacy)
Using library Adafruit_SSD1306master in folder: C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master (legacy)
ssd1306_128x64_spi.ino:37:46: error: variable 'logo16_glcd_bmp' must be const in order to be put into read-only section by means of 'attribute((progmem))'
ik heb steeds een probleem op regel 37:
static unsigned char PROGMEM logo16_glcd_bmp[] =
wat is hier verkeerd gegaan ?
Ik vind het maar raar omdat alles voorheen wel gewerkt heeft
waarschijnlijk is het weer iets heel stom/simpel maar ik zie het niet .
Arduino IDE 1.5.7 gebruikt een nieuwere versie van de compiler en die is strikter in zijn C/C++ taal vereisten.
Zoals de fout boodschap zegt moet const erbij.
Zo uit mijn hoofd denk ik dat
static unsigned char PROGMEM logo16_glcd_bmp[] =
moet worden
static const unsigned char PROGMEM logo16_glcd_bmp[] =
Je zegt dat het met 1.0.6 ook niet werkt. Welke fout krijg je daar?
Ik heb static const unsigned char PROGMEM logo16_glcd_bmp[] = geprobeerd
en dan krijg ik een foutmelding
Arduino: 1.5.7 (Windows 7), Board: "Arduino Uno"
Build options changed, rebuilding all
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:31:29: error: variable 'font' must be const in order to be put into read-only section by means of 'attribute((progmem))'
extern uint8_t PROGMEM font[];
^
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:31:29: error: conflicting declaration 'uint8_t font []'
In file included from C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:28:0:
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/glcdfont.c:13:28: error: 'font' has a previous declaration as 'const unsigned char font [1275]'
static const unsigned char font[] PROGMEM = {
^
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In constructor 'Adafruit_SSD1306::Adafruit_SSD1306(int8_t, int8_t, int8_t, int8_t, int8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:134:93: error: no matching function for call to 'Adafruit_GFX::Adafruit_GFX()'
Adafruit_SSD1306::Adafruit_SSD1306(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS) {
^
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:134:93: note: candidates are:
In file included from C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:25:0:
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17:3: note: Adafruit_GFX::Adafruit_GFX(int16_t, int16_t)
Adafruit_GFX(int16_t w, int16_t h); // Constructor
^
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17:3: note: candidate expects 2 arguments, 0 provided
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13:7: note: Adafruit_GFX::Adafruit_GFX(const Adafruit_GFX&)
class Adafruit_GFX : public Print {
^
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13:7: note: candidate expects 1 argument, 0 provided
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In constructor 'Adafruit_SSD1306::Adafruit_SSD1306(int8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:143:48: error: no matching function for call to 'Adafruit_GFX::Adafruit_GFX()'
Adafruit_SSD1306::Adafruit_SSD1306(int8_t reset) {
^
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:143:48: note: candidates are:
In file included from C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:25:0:
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17:3: note: Adafruit_GFX::Adafruit_GFX(int16_t, int16_t)
Adafruit_GFX(int16_t w, int16_t h); // Constructor
^
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17:3: note: candidate expects 2 arguments, 0 provided
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13:7: note: Adafruit_GFX::Adafruit_GFX(const Adafruit_GFX&)
class Adafruit_GFX : public Print {
^
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13:7: note: candidate expects 1 argument, 0 provided
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In member function 'void Adafruit_SSD1306::begin(uint8_t, uint8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:151:22: error: 'constructor' was not declared in this scope
constructor(128, 64);
^
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:31: error: conflicting declaration 'uint8_t font []'
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/glcdfont.c:13: error: 'font' has a previous declaration as 'const unsigned char font [1275]'
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In constructor 'Adafruit_SSD1306::Adafruit_SSD1306(int8_t, int8_t, int8_t, int8_t, int8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:134: error: no matching function for call to 'Adafruit_GFX::Adafruit_GFX()'
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17: note: candidates are: Adafruit_GFX::Adafruit_GFX(int16_t, int16_t)
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13: note: Adafruit_GFX::Adafruit_GFX(const Adafruit_GFX&)
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In constructor 'Adafruit_SSD1306::Adafruit_SSD1306(int8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:143: error: no matching function for call to 'Adafruit_GFX::Adafruit_GFX()'
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:17: note: candidates are: Adafruit_GFX::Adafruit_GFX(int16_t, int16_t)
C:\Users\Gert\Documents\Arduino\libraries\AdafruitGFXLibrarymaster/Adafruit_GFX.h:13: note: Adafruit_GFX::Adafruit_GFX(const Adafruit_GFX&)
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp: In member function 'void Adafruit_SSD1306::begin(uint8_t, uint8_t)':
C:\Users\Gert\Documents\Arduino\libraries\Adafruit_SSD1306master\Adafruit_SSD1306.cpp:151: error: 'constructor' was not declared in this scope
je hebt een probleem van conflicterende libraries.
Daar de twee conficterende libraries alletwee van adafruit komen zou ik daar eens kijken. Ik weet dat ze een en ander herwerkt hebben en het zou mij niet verwonderen dat je oude en nieuwe versies van de libraries door elkaar gebruikt.
Met vriendelijke groet
Jantje