ILI9341

IDE gerelateerde berichten
Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

ILI9341

Berichtdoor Looitje » 16 Mei 2020, 15:56

Ik heb dit display: https://www.tinytronics.nl/shop/nl/disp ... ls-ili9341

Als ik in de Arduino naar Bestand > Voorbeelden > de sketch Adafruit ILI3941 graphicstest open en compileer krijg ik volgende foutmeldingen:


Arduino: 1.8.8 (Windows 8.1), Board:"Arduino Uno"

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'virtual void Adafruit_ILI9341::begin(uint32_t)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:194:5: error: 'sendCommand' was not declared in this scope

sendCommand(ILI9341_SWRESET); // Engage software reset

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:194:5: note: suggested alternative: 'readcommand8'

sendCommand(ILI9341_SWRESET); // Engage software reset

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:203:5: error: 'sendCommand' was not declared in this scope

sendCommand(cmd, addr, numArgs);

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:203:5: note: suggested alternative: 'readcommand8'

sendCommand(cmd, addr, numArgs);

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'virtual void Adafruit_ILI9341::setRotation(uint8_t)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:244:3: error: 'sendCommand' was not declared in this scope

sendCommand(ILI9341_MADCTL, &m, 1);

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:244:3: note: suggested alternative: 'readcommand8'

sendCommand(ILI9341_MADCTL, &m, 1);

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'virtual void Adafruit_ILI9341::invertDisplay(bool)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:254:3: error: 'sendCommand' was not declared in this scope

sendCommand(invert ? ILI9341_INVON : ILI9341_INVOFF);

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:254:3: note: suggested alternative: 'readcommand8'

sendCommand(invert ? ILI9341_INVON : ILI9341_INVOFF);

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'void Adafruit_ILI9341::scrollTo(uint16_t)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:267:3: error: 'sendCommand' was not declared in this scope

sendCommand(ILI9341_VSCRSADD, (uint8_t *)data, 2);

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:267:3: note: suggested alternative: 'readcommand8'

sendCommand(ILI9341_VSCRSADD, (uint8_t *)data, 2);

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'void Adafruit_ILI9341::setScrollMargins(uint16_t, uint16_t)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:288:5: error: 'sendCommand' was not declared in this scope

sendCommand(ILI9341_VSCRDEF, (uint8_t *)data, 6);

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:288:5: note: suggested alternative: 'readcommand8'

sendCommand(ILI9341_VSCRDEF, (uint8_t *)data, 6);

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp: In member function 'uint8_t Adafruit_ILI9341::readcommand8(uint8_t, uint8_t)':

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:327:3: error: 'sendCommand' was not declared in this scope

sendCommand(0xD9, &data, 1); // Set Index Register

^~~~~~~~~~~

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:327:3: note: suggested alternative: 'readcommand8'

sendCommand(0xD9, &data, 1); // Set Index Register

^~~~~~~~~~~

readcommand8

C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341\Adafruit_ILI9341.cpp:328:27: error: 'readcommand8' is not a member of 'Adafruit_SPITFT'

return Adafruit_SPITFT::readcommand8(commandByte);

^~~~~~~~~~~~

Meerdere bibliotheken gevonden voor "Adafruit_GFX.h"
Gebruikt: C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_GFX_Library
Niet gebruikt: C:\Users\Looitje\Documents\Arduino\libraries\Adafruit-GFX-Library-master
Meerdere bibliotheken gevonden voor "Adafruit_ILI9341.h"
Gebruikt: C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341
Niet gebruikt: C:\Users\Looitje\Documents\Arduino\libraries\Adafruit_ILI9341-master
exit status 1
Fout bij het compileren voor board Arduino Uno

Dit rapport zou meer informatie bevatten met
"Uitgebreide uitvoer weergeven tijden compilatie"
optie aan in Bestand -> Voorkeuren.

Dat is dus een flinke boterham en ik veronderstel dat er een probleem is met de bibliotheken of ben ik mis? En hoe kan ik dit oplassen?
Met vriendelijke groet, Looitje

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: ILI9341

Berichtdoor Koepel » 16 Mei 2020, 19:37

Waarom denk je dat je die met een Arduino Uno kunt verbinden ?
Een Arduino Uno is a 5V board, dus ook alle signalen zijn dat.

Bij tinytronics.nl staat: "Spanning(voeding en signaal): 3.3V".
En ook: "Let op: De SPI pinnen voor het display en de SD-kaarten SPI flash chip werken op 3.3V. Maak dus gebruik van een level converter indien noodzakelijk".

Je gebruikt de libraries van Adafruit. Als je ook een display van Adafruit had gekocht en de tutorial van Adafruit zou volgen, dan werkt het wel: https://learn.adafruit.com/adafruit-3-5-color-320x480-tft-touchscreen-breakout.
Adafruit heeft level converters aan het TFT display toegevoegd, zodat het ook met een 5V board kan werken.

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: ILI9341

Berichtdoor Looitje » 16 Mei 2020, 23:25

Ik ben van plan om de Atmega 328 te programmeren met de Arduino en de Atmega328 dan te verbinden met het display en laten werken op 3.3 volt.
Wat wel raar is dat de code in de voorbeelden van de Arduino IDE de foutmelding geven. Hoe zou dat komen? Gebruik ik een verkeerde librarie?
Met vriendelijke groet, Looitje

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: ILI9341

Berichtdoor Koepel » 17 Mei 2020, 09:38

Dus het display wordt nooit verbonden met een Arduino Uno ?
Een ATmega328P op 16MHz werkt wel (een beetje) op 3.3V, maar dat is buiten de specificaties in de datasheet. Dus eigenlijk kan het niet.

Het beste is om een ATmega328P op 3.3V op 8MHz te laten draaien. Dan de RX en TX pin naar een connector en een USB-serial printje gebruiken om de sketch te uploaden. Er zijn officiële Arduino board(s) met een ATmega328P op 8MHz, dus daar kun je de bootloader van gebruiken en dat board voortaan kiezen in de Arduino IDE om te compileren en te uploaden. In het bestand "boards.txt" staan alle mogelijkheden.
Als ik zoek in "boards.txt", dan kom ik uit op regel 685: "## Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328P".

Je hebt waarschijnlijk meer libraries nodig.
Heb je deze al: https://github.com/adafruit/Adafruit_GFX ?
Die zit misschien gewoon in de Bibliotheek Beheer in de Arduino IDE.

Als je die twee libraries hebt, dan is het geheugen snel vol.

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: ILI9341

Berichtdoor Looitje » 17 Mei 2020, 09:55

De librarie https://github.com/adafruit/Adafruit_GFX was reeds geïnstalleerd.
En de Atmega328P programmeren met de Arduino Uno en daarna laten draaien op 8MHz en 3.3volt kan toch wel hoop ik?
Het voorbeeld in de Arduino IDe de sketch Adafruit ILI3941 graphicstest zou toch die foutmeldingen niet mogen geven.
Met vriendelijke groet, Looitje

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: ILI9341

Berichtdoor Koepel » 17 Mei 2020, 11:28

Kun je een regel toevoegen?
Code: Alles selecteren
#include <Adafruit_SPITFT.h>
#include <Adafruit_GFX.h>

Er zijn een paar issues te vinden waarbij anderen dezelfde foutmelding krijgen.

Als je gaat wisselen tussen 16MHz en 8MHz dan gaat dat natuurlijk verkeerd.
Het uploaden van een sketch gebruikt een bepaalde baudrate, dat kan alleen als de cpu clock klopt.
Bij het compileren zul je toch echt 8MHz moeten instellen, als dat is waar het uiteindelijk op draait.
Er zijn allerlei libraries die bepaalde timing laten afhangen van de snelheid waarop de Arduino draait.

Het beste is om een bepaald officieel board na te maken, en de sketch uploaden in je project zelf. Dat hoeft niet via RX en TX, je kunt natuurlijk ook een connector naar een programmer gebruiken om de sketch er in te branden. Dat kan ook via de Arduino IDE.
Het lijkt alsof je nu een probleem probeert te verdoezelen door het te bedekken met een veelvoud van nieuwe problemen :o

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: ILI9341

Berichtdoor Looitje » 17 Mei 2020, 13:55

Ik heb uit het Elektuur nummer mei/juni 2018 de wekker met drievoudige weergave nagebouwd en met mijn Arduino Uno de code geuploaded zonder problemen, de tft doet wat hij moet doen en de Atmega werkt op 12 MHz en de code is er ingezet met de Arduino Uno op 16 MHz.

Heb jij getest of je het voorbeeldprogramma ILI9341 van de Arduinosketch zonder foutmelding kan verifiëren ?
Bedankt voor uw geduld en uw antwoorden tot nu toe.
Met vriendelijke groet, Looitje

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: ILI9341

Berichtdoor Koepel » 17 Mei 2020, 16:53

Kun je zeggen welke TFT of ILI9341 library je hebt geïnstalleerd en hoe en waar vandaan.
Als ik de "Bibliotheek Beheer" open, dan zie ik er al verschillende.

Ik gebruik Arduino IDE 1.8.12.

Vanuit "Bibliotheek Beheer" heb ik zomaar eens de "Adafruit TFTLCD Library" "by Adafruit" geprobeerd. Toen kreeg ik de vraag of ik een heel stel andere libraries ook wilde installeren, en dat heb ik gedaan.

Toen heb ik dit voorbeeld gepakt:
menu: Bestand / Voorbeelden / Adafruit ILI9341 / graphicstest
Dat gecompileerd voor een Arduino Uno.
Dat gaat goed, en zijn alleen een stuk of 6 waarschuwingen.

Maar ik heb dus geen oude zooi :!: Ik heb de nieuwste Arduino IDE :!: Ik heb geen rommel zomaar ergens van internet gehaald :!: Ik heb geen dubbele (driedubbele, vierdubbele) libraries in mijn "libraries" map :!: Als ik in hardware iets doe, dan ga ik niet de boel stuk maken door alle waarschuwingen naast me neer te leggen :!:

Berichten: 47
Geregistreerd: 02 Dec 2018, 12:19

Re: ILI9341

Berichtdoor Looitje » 17 Mei 2020, 17:41

Ik heb in het menu: Bestand / Voorbeelden / Adafruit ILI9341 / graphicstest gecompileerd voor mijn Arduino Uno maar nu met mijn laptop en dit gaat prima zonder foutmelding.
Dan heb ik in: menu: Bestand / Voorbeelden / Adafruit GFX librariy mock_ili9341 ook gecompileerd met mijn laptop en ook dit gaat prima zonder foutmelding.
Op de laptop staat Arduino versie 1.8.7
Op de desktop die ik normaal gebruik staat Arduino versie 1.8.8
Ik denk nu ook dat er op min desktop bij de libraries echt te veel rommel zit, dat moet ik eerst eens opkuisen vrees ik.
Als ik libraries toevoeg dan haal ik die inderdaad van het internet maar steeds van GitHub, ik hoop dat dat geen probleem geeft?
Laatst gewijzigd door Looitje op 17 Mei 2020, 17:57, in totaal 1 keer gewijzigd.
Met vriendelijke groet, Looitje

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: ILI9341

Berichtdoor Koepel » 17 Mei 2020, 17:49

Dat zet me aan het denken. Loop je bijvoorbeeld op hele oude schoenen met gaten er in :lol:
In de "release notes" kun je lezen welke gaten gedicht zijn in de nieuwere versies: https://www.arduino.cc/en/Main/ReleaseNotes.
Daar zitten er een paar bij die van invloed kunnen zijn op dit probleem.

Volgende

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten