Göra en Arduino skiss mindre (2 / 3 steg)

Steg 2: Trim ner bibliotek



En mer extrem och brute force-metoden för att minska storleken på programmet är att göra en kopia av alla stora komplexa bibliotek och ta bort all kod som du inte kommer att använda. En av de bibliotek som jag använder är UTFT LCD-bibliotek. Den stöder flera LCD-skärmar och har en hel del ritning funktioner. Detta kräver en hel del kod läser och spårning att avgöra vad du verkligen behöver hålla, och några försök och misstag att få det hela att sammanställa och arbeta. Jämn efter användande UTFT'S memorysaver.h kunde jag spara över 5K extra utrymme genom att ta bort all kod för att stödja flera LCD-skärmar och genom att ta bort klassmedlemmar som jag inte kommer att använda. Jag ska försöka förklara hur jag gick om detta så att du kan tillämpa det på alla bibliotek.

Först och främst, jag gick in i mappen arduino/bibliotek och gjorde en kopia av mappen UTFT och döpt den till "myUTFT", sedan bytt namn UTFT.h och UTFT.cpp till myUTFT.h och myUTFT.cpp.
Nästa, jag öppnade myUTFT.h och myUTFT.cpp i en textredigerare och ersatt alla UTFTs med myUTFT. Detta får mig ett helt nytt bibliotek och klass som någonsin kommer inte att orsaka en konflikt i Arduino-miljö.

Nu det svåra, att ta bort koden! Jag började med myUTFT.h och började på toppen, läsa koden. Först såg jag det finns en lista över definierar för alla olika LCD-skärmar och chips som stöds. Jag tog bort allt utom de som jag använder. Därefter finns det några "#if definieras" "linjer för olika mikro-styrenheter stöds. Jag kunde ha lämnat dessa som-är, men beslutade att brute-force allt och bort alla utom AVR dem för Arduino. Slutligen finns det en lista över klassmetoder, och jag tog bort de jag inte använder. UTFT har en notering om några odokumenterade metoder, och dessa verkar användas internt, så jag lämnade dem.

Nu för myUTFT.cpp. Jag gav detta samma behandling som filen .h, döpa om UTFT till myUTFT och ta bort onödiga definierar och fungerar. Jag tog också bort vissa funktioner överbelastad. Jag planerar att bara ställa in färger av "ordet" namngivna konstanter och inte av RGB bytes, så jag tog bort "setColor (byte r, byte g, byte b)" och "setBackColor (byte r, byte g, byte b)" funktioner. Jag läste sedan varje funktion och tittade för kod som jag inte behöver, till exempel LCD-skärmen jag använder har en include-filer som anger "display_transfer_mode = 8", så jag inte behöver någon kod som använder andra värden för display_transfer_mode, så jag tog bort dessa kodblock. Jag tog också bort metoder för funktioner inte har stöd för min lcd, precis som den på och kontrastera metoder.

Nästa, jag öppnade alla filer som ingår under mappen myUTFT och gav dem alla samma behandling.

Nu i din skiss, ändra namn på inkludera och klass att matcha ditt nya bibliotek och göra en verifiera. Mitt första försök fick jag en hel del sammanställa fel eftersom jag bort för mycket kod, eller tog bort en variabel definition och missade koden där den variabeln användes. Felen kommer att berätta vilka filer och linjer att titta på, följa dem och fixa allt det klagar. Detta är fördelen med att göra en kopia av biblioteket, kan jag hänvisa till den ursprungliga att se vad jag behöver lägga tillbaka. När den verifierar, ladda upp den nya bilden och se om det fortfarande fungerar.

Se Steg
Relaterade Ämnen

Logga Arduino skisser 101

så här lata gamla Geek (LOG) blir uttråkad ibland och vill ha något att göra. Faktiskt, ibland jag blir trött av att försöka lösa maskinvaruproblem, som ibland programvaruproblem. Så jag bestämde mig att göra en tutorial på Arduino skisser.Vad är en...

Rädda världen en droppe i taget, del 4: Uppladdning Arduino skiss koden

Detta kommer att gå igenom processen att ladda upp koden till din respektive scouter.För din vattenledning, packa upp filen "BootstrapHALL"För ditt uttag, packa upp filen "PiezoFinal"Du kommer att märka att dessa filer innehåller en ra...

X-Mass Arduino skiss

X-Mass Arduino skiss med 8 lägen (vänster-höger, från mitten, två pivots, förloppsindikator, inverterad vänster-höger, steg för steg, tetris, incrementor).Skiss källkoden:https://GIST.GitHub.com/1508578...

LC-2000 (PA)-P2P 2.4GHz RF fjärrkontroll Arduino skiss ladda upp Demo

Detta dokument ger ett exempel på hur du använder LC-2000 (PA)-P2P till slut trådlöst ladda upp. LC-2000-P2P seriell modulen arbetar att varje steg, ett par av LC-2000-P2P har innehållit två unis, en är MASTER och en annan är slav, kan det avlägsen l...

Översikt Arduino skiss belastande upp processen och ISP

Du kan överföra programvaran till en Arduino med två metoder. Du får höra om de två metoderna brukar kallas ISP programmering och FTDI eller seriell upp. Jag rekommenderar att lära om och bli bekväm med att använda båda metoderna. När jag var att kom...

Arduino skiss för retro analoga mätare grafik på en modern TFT-skärm

En annan skiss från min samling som kan vara av intresse...Visa små digitala siffror av temperatur och luftfuktighet etc på en liten skärm är inte alltid det bästa sättet att visa information. Gammal stil analoga mätarna är bättre i vissa situationer...

Stänga av från en Arduino skiss med hjälp av Pololu strömbrytaren

om du behöver en Arduino att stänga av från inom din skiss, är detta lösningen.Vi kommer att utforska ledningar Pololu tryckknapp strömmen med strömbrytaren, programmera Arduino att stänga av strömmen och göra enheten "makt på" bara.Pololu tryck...

Arduino Resistor-mindre knappsatsen åtkomstkontroll

detta instructable använder interna ATMEGA motstånden för att köra en 4 x 4 knappsats för åtkomstkontroll. De flesta uppgifterna kommer från, jag också använt källor från här och där.Använda externa motstånd är besvärliga och helt onödiga eftersom AT...

Burning skiss till Atmega328P-PU på en skärbräda med Arduino Uno som programmerare

Det finns redan flera instructables på hur man bränner Arduino skiss till Atmega328P-PU på en skärbräda med olika USB - UART moduler. Men som de flesta modulerna är tillverkade i Kina, de är dåligt dokumenterad, felaktigt märkta, underligt utformad,...

Använd RFduino att köra Arduino kompatibel skisser och kommunicera med din iPhone med Bluetooth 4.0 lågenergi.

Trådlös mynt-storlek Arduino kompatibel öppen mikrodator som talar till din iPhone med Bluetooth 4.0 lågenergiRFduino är en fristående ombord, precis som den Arduino UNO. Dessutom har RFduino en kraftfull ARM Cortex processor och Bluetooth Low-Energy...

Arduino IoT väder klocka

I detta Instructable kommer vi att bygga en klocka som även visar i och utanför klimatförhållanden.Jag brukade ha en cool liten klocka som, förutom talande tiden, visas även temperaturen i huset, datumet och den utvändiga temperaturen via en sensor f...

Baserade Arduino House värmare Controler med SMS användargränssnitt

projektet innehåller instruktioner och koden för att bygga en uppvärmning controller för ditt hem eller avlägsna land hus, som kan kontrolleras och övervakas av GSM via SMS-kommandon. Jag började att utforma det så vi behövde en pålitlig och Register...

Arduino sprinkler ventiler + wifi + twitter

[redigera: Jag gjorde järnvaror del mer kompakt med hjälp av en relay sköld. Om du planerar att använda 4 reläer eller mindre, sedan ta en titt här...]Detta är mitt första inlägg så... vara brutal!Jag har en liten trädgård med en mycket udda form, ja...

RGB LED Tutorial (med en Arduino) (RGBL)

Lysdioder är bra. Men med alla projekt man kommer till en punkt där blinkande inte räcker. För dessa fall RGB (röd, grön, blå) är LED svaret.Med en RGB LED du kommer att kunna producera någon färg lyser ditt hjärta önskar.På första använder en RGB LE...

CO2 Laser vatten flöde Monitor - Arduino Powered / Windows kontrollerade

CO2 Laser vatten flöde Monitor och larmDrivs av en Arduino och kontrollerade av anpassade program på en Windows PCAtt förlänga livslängden på en CO2 laser röret är det nödvändigt att pumpa kylvatten genom det medan det fungerar. Om pumpen inte eller...

Arduino ljus & slå upptäcka dörrlås

detta är en stor anordning för hemliga klubbhus och för folk som mig som alltid verkar förlora sina nycklar! Detta projekt bygger på den ursprungliga hemlighet slå Lock instructable av Grathio (finns under) med följande huvudsakliga ändringar:1) har...

Anpassade Arduino MIDI Controller

Hej och Välkommen till detta instructable om hur man bygger en anpassad, Billigt och enkelt USB MIDI-controller, baserat på Arduino. Den bästa nyheten: inget krångel med USB-till-MIDI-gränssnitt eller programvaruverktyg som Hårlösa MIDI, bara plug 'n...

Android kontrollerade Arduino Bluetooth Panzer

Remote Control bilar är kul att köra runt i rummet eller vandrande huset. Vad kan vara roligare för det? När du har synligheten som om du rider i den. En trådlös IP-kamera är svaret. Eller låt oss säga att du har övervakningskameror runt huset eller...

DIY RC/Arduino åkande jeep låg kostnad konvertering

Här är min snabb youtube video för detta projekt.I min tidigare Instructable byggde jag en RC tank (se här) med modet i en RC leksaksbil och en Arduino som hanterar styrsignaler för Tamiya spårade chassi. Sedan tänkte jag gå ett steg högre: RC en åka...