Adafruit OLED

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Telectronic
Biztosítékgyilkos
Hozzászólások: 63
Csatlakozott: 2018. február 26. hétfő, 9:04
Tartózkodási hely: Budapest
Kapcsolat:

Adafruit OLED

HozzászólásSzerző: Telectronic » 2021. február 10. szerda, 22:56

Sziasztok,

Használom ezt a 128x64-es OLED kijelzőt, működik minden csak fordításkor telehányja hibaüzenettel a képernyőt :

arduino-1.8.3\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp:1540:39: warning: unused parameter 'i' [-Wunused-parameter]

void Adafruit_GFX::invertDisplay(bool i) {

^

arduino-1.8.3\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp: In member function 'void GFXcanvas1::drawFastRawHLine(int16_t, int16_t, int16_t, uint16_t)':

arduino-1.8.3\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp:2091:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

for (int8_t i = 0; i < lastByteBits; i++) {

^

arduino-1.8.3\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp: In member function 'void GFXcanvas16::drawFastRawHLine(int16_t, int16_t, int16_t, uint16_t)':

arduino-1.8.3\libraries\Adafruit-GFX-Library-master\Adafruit_GFX.cpp:2666:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

for (int16_t i = buffer_index; i < buffer_index + w; i++) {

^
Mi ez ? Mi hibás ?
Bár lefordítja és működik is rendben csak úgy kíváncsiságból érdekel...

Köszi
Mindenki azt gondol amit akar, de a szabad világban, szabad országban, bármit csinálhatsz amit szabad ! Ha van covid passod :)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10107
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Robert » 2021. február 11. csütörtök, 6:05

A várt és a kapott változó nem azonos típus.
Pl. előjeles integer / normál integer -> -32k...+32k / 0..65k számtartomány

Az Arduino mintakód a települt könyvtárak (OLED; adafruit_gfx, stb) nincsenek teljes összhangban...
http://www.tavir.hu - a gazda :)

Telectronic
Biztosítékgyilkos
Hozzászólások: 63
Csatlakozott: 2018. február 26. hétfő, 9:04
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Telectronic » 2021. február 11. csütörtök, 21:31

Köszi. Szóval kellene saját libraryt írnom hozzá, hogy ne legyen hiba üzenetem ? :)
Mindenki azt gondol amit akar, de a szabad világban, szabad országban, bármit csinálhatsz amit szabad ! Ha van covid passod :)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10107
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Robert » 2021. február 11. csütörtök, 21:36

Nem.
Az arduino keretrendszer - Adafruit_GFX - OLED driver legyen összhangban...
A változók össze vannak rakva. Az összevissza verzióknál vannak átállítgatva és elmászva...
http://www.tavir.hu - a gazda :)

Telectronic
Biztosítékgyilkos
Hozzászólások: 63
Csatlakozott: 2018. február 26. hétfő, 9:04
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Telectronic » 2021. február 11. csütörtök, 21:41

Értem, lehet, hogy a 1.8.3 már túl régi neki ?
Mindenki azt gondol amit akar, de a szabad világban, szabad országban, bármit csinálhatsz amit szabad ! Ha van covid passod :)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10107
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Robert » 2021. február 12. péntek, 4:55

Inkább a Adafruit_GFX és a OLED verziók nincsenek összehangolva...
http://www.tavir.hu - a gazda :)

vargham
Chipgyilok
Hozzászólások: 292
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: vargham » 2021. február 12. péntek, 5:51

Ezek nem hibák, hanem figyelmeztetések. Megnézted a forráskódot, hogy pontosan miért adja őket a fordító?

Kód: Egész kijelölése

Adafruit_GFX.cpp:1540:39: warning: unused parameter 'i' [-Wunused-parameter]
void Adafruit_GFX::invertDisplay(bool i) {

Ez annyit tesz, hogy a függvény nem használja a kapott paramétert. Ez arra figyelmezteti a programozót, hogy vagy elfelejtette használni, vagy felesleges az a paraméter.

Kód: Egész kijelölése

/**************************************************************************/
/*!
    @brief      Invert the display (ideally using built-in hardware command)
    @param   i  True if you want to invert, false to make 'normal'
*/
/**************************************************************************/
void Adafruit_GFX::invertDisplay(bool i) {
  // Do nothing, must be subclassed if supported by hardware
  (void)i; // disable -Wunused-parameter warning
}

Látszik, hogy ez a függvény nem csinál semmit. Még a figyelmeztetést is megpróbálták elnyomni, nem sikerült. :-)
Itt azzal állunk szemben, hogy nem túl elegánsan oldották meg az eredeti fejlesztők a kérdést, de bajt nem okoz.

Kód: Egész kijelölése

Adafruit_GFX.cpp:2091:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int8_t i = 0; i < lastByteBits; i++) {

Ezt benézte a programozó. Előjeles és előjel nélküli kifejezéseket hasonlíott össze. Ami nem tilos, csak éppen nem várt működést okozhat. Ahogy néztem, a Githubon már a javított verzió van fent.
Ha ez valakinek a munkája lenne, akkor code review során nem fogadták volna el.

Kód: Egész kijelölése

Adafruit_GFX.cpp:2666:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int16_t i = buffer_index; i < buffer_index + w; i++) {

Ezt is benézte.

vargham
Chipgyilok
Hozzászólások: 292
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: vargham » 2021. február 12. péntek, 5:52

Robert írta:Inkább a Adafruit_GFX és a OLED verziók nincsenek összehangolva...

Ha megnézed, akkor a figyelmeztetéseket a GFX liben BELÜLI kódra adja, tehát semmi köze a két lib összehangolásához.

Telectronic
Biztosítékgyilkos
Hozzászólások: 63
Csatlakozott: 2018. február 26. hétfő, 9:04
Tartózkodási hely: Budapest
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: Telectronic » 2021. február 14. vasárnap, 10:28

Köszi. Letöltöttem a githubról, most minden jó.
Csak úgy zavart, hogy én igyekszem hibátlanul megírni, azt mégis telehányják az arcomat a hibaüzenetek :)
Mondjuk az is belejátszott, hogy a Compiler Warnings: ALL-ra volt állítva. Most kicsit "lazábbra vettem a figurát" és Default-ra tettem.

>Ha ez valakinek a munkája lenne, akkor code review során nem fogadták volna el.
A programozó vizsgán néhány alap kitétel ami azonnal bukta.
pl. a memória felszabadítás elmaradása
Kedvencem...a Win98-ban volt hiba. A képnézegető alapban az internet explorer.
És úgy 40-50 kép után (mérettől függően) elkezdte dobálni a hiba üzeneteket, hogy out of memory error.
Hmmm, 2Gb memória elfogyott képnézegetésre, az igen :)
Mindenki azt gondol amit akar, de a szabad világban, szabad országban, bármit csinálhatsz amit szabad ! Ha van covid passod :)

vargham
Chipgyilok
Hozzászólások: 292
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: Adafruit OLED

HozzászólásSzerző: vargham » 2021. február 14. vasárnap, 15:26

Telectronic írta:Mondjuk az is belejátszott, hogy a Compiler Warnings: ALL-ra volt állítva. Most kicsit "lazábbra vettem a figurát" és Default-ra tettem.

Safety critical szoftveren (is) dolgozom. Warning all, és warning = error. :-)

Telectronic írta:Kedvencem...a Win98-ban volt hiba. A képnézegető alapban az internet explorer.
És úgy 40-50 kép után (mérettől függően) elkezdte dobálni a hiba üzeneteket, hogy out of memory error.
Hmmm, 2Gb memória elfogyott képnézegetésre, az igen :)

Akkoriban inkább 64 MB körüli RAMot használtunk. ;-)


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég