Adafruit OLED

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Telectronic
Biztosítékgyilkos
Hozzászólások: 73
Csatlakozott: 2018. február 26. hétfő, 9:04

Adafruit OLED

Hozzászólás Szerző: Telectronic »

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 !
Nem szeretem ezt a hazug világot !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Adafruit OLED

Hozzászólás Szerző: Robert »

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: 73
Csatlakozott: 2018. február 26. hétfő, 9:04

Re: Adafruit OLED

Hozzászólás Szerző: Telectronic »

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 !
Nem szeretem ezt a hazug világot !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Adafruit OLED

Hozzászólás Szerző: Robert »

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: 73
Csatlakozott: 2018. február 26. hétfő, 9:04

Re: Adafruit OLED

Hozzászólás Szerző: Telectronic »

É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 !
Nem szeretem ezt a hazug világot !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Adafruit OLED

Hozzászólás Szerző: Robert »

Inkább a Adafruit_GFX és a OLED verziók nincsenek összehangolva...
http://www.tavir.hu - a gazda :)
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: Adafruit OLED

Hozzászólás Szerző: vargham »

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: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: Adafruit OLED

Hozzászólás Szerző: vargham »

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: 73
Csatlakozott: 2018. február 26. hétfő, 9:04

Re: Adafruit OLED

Hozzászólás Szerző: Telectronic »

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 !
Nem szeretem ezt a hazug világot !
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: Adafruit OLED

Hozzászólás Szerző: vargham »

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. ;-)
Válasz küldése