Stap 2: Bibliotheken en voorbeeld schetsen (bijgewerkt 2/4/15)
U moet de bibliotheken in het bijgevoegde zip-bestand en de bibliotheek van de SdFat (inbegrepen voor gemak). De standaard SD-bibliotheek kan worden gebruikt, maar dit vereist kleine wijzigingen in de schets en langzamer zal lopen.
De belangrijkste wijzigingen in de ILI9341 bibliotheek zijn snelheid en voegt toe de pushColors() functie, één om integer matrices (voor BMP tekening) en één voor byte arrays (ruwe beelden).
In het zip bestand vindt u een map met afbeeldingen, zet deze op een FAT geformatteerd SD-kaart voor de Arduino te lezen (niet in een map!). U kunt de SD bibliotheek voorbeelden voor het gebruik van de bovenstaande pinnen om een schets kan toegang tot de bestanden en de bedrading is goed te controleren. Als in problemen post een pleidooi voor hulp... Ik kan een fout hebt gemaakt of kunt krijgen van uw instelling gaat, niet vergeten dat het moeilijk is om te debuggen grote problemen door een paar berichten uit te wisselen is mogelijk...
Allermeest naar de image bestanden in BMP-indeling, zijn zodat het wordt overgelaten als een oefening om ze te converteren naar het raw formaat, wijziging de sketch en de verbeterde tekening snelheid zien.
De schets van de "ILI9341_draw_bitmap" (in de Adafruit_ILI9341_AS map) in het volgende voorbeeld gebruikt 90% van de UNO FLASH en 54% van de RAM voor dynamische opslag als gecompileerd onder IDE 1.6.1.
Lettertype 2 (of andere kleine lettertypebestand) alleen in te schakelen of de UNO zal opraken van geheugen van de flits!
Ik gebruik de compiler-O2 optie zoals in mijn Instructable hier. De standaard -Os optie zal verkleinen code beelden maar het draait langzamer (wanneer IDE 1.6.1 gebruikt). IDE 1.0.6 gecompileerd schetsen past mogelijk niet geheel in een UNO aangezien de oude versie van de GCC compiler snel maar vrij groot executables produceert.
In de exemplaren van de bibliotheken in de zip-bestanden is de F_AS_T uitgeschakeld en alleen lettertype 2 is ingeschakeld, worden zich bewust van dit, als u andere schets voorbeelden probeert!
De afbeelding tekenen functie is onderdeel van de schets niet de bibliotheek, dit is doelbewuste want het is al te gemakkelijk een zwaargewicht geheugen hongerige functie rijke bibliotheek die een druk op de AVR legt op basis van Arduino vermogen gecreëerd! Nou is dat mijn excuus ;-) Sommige folk dit oplossen door een eenvoudige wrapper-bibliotheek waarin deze functies en dringt er lager niveau Bibliotheken, dus dit een optie voor de toekomst is. U kunt de functie drawBMP() uitknippen en gewoon gebruik maken van drawRAW() om wat ruimte te besparen.
De belangrijkste tekenen functie prototypes zijn:
VOID drawBMP (char * filename, int16_t x, y int16_t, boolean flip)
De bestand naam in de 8.3-indeling moeten worden, zie de SD bibliotheek documentatie. x eny zijn de coords waar de top meest linkse pixel van de afbeelding zal worden getrokken. Zie de laatste stap van dit Instructable voor de functie van de vlag spiegelen . De breedte en de hoogte van de afbeelding worden geëxtraheerd uit het BMP-bestand.
Het equivalent voor ruwe bitmaps behoort:
VOID drawRAW (char * filename, int16_t x int16_t y, int16_t rawWidth, int16_t rawHeight)
Aangezien er slechts pixelgegevens in dit bestand die de breedte en de hoogte van de afbeelding moeten worden verstrekt aan de functie.
De bibliotheek en de sketch is gericht op AVR-processors (UNO, Mega etc). Ik heb geen een, zo niet van plan bent op het moment om het te maken compatibel met ARM-processors. Als iemand krijgt de schets waarop een DUE dat ik zou graag hier hoe moeten worden uitgevoerd, als de SPI kan worden uitgevoerd op 48MHz dan een hele scherm update waarschijnlijk kon worden uitgevoerd in minder dan 100ms... Als u wilt uitvoeren de SPI op deze frequentie zou u waarschijnlijk nodig een digitale logica niveau conversieprogramma's.
Opmerking: Op 2/4/15 de bibliotheek schets is bijgewerkt om prestaties verder te verbeteren.
3/4/15: minor bug fix