Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Nem vagyok profi a dologba, de fogadni mernek hogy az IDE csak azt kolcsonzi ki a konyvtarakbol ami eppen kell. Akar ki is probalhatod, "gyomlald" ki a pelda kodot (ne hagyj benne semmit, csak az #include ... valamit/ valamiket es nezd meg mekkora lessz igy az IC-be beirando kod. Majdnem nulla.
Semmi ertelme nincs/ nem lenne hogy beolvassa/ beirja/ bemasolja az egesz konyvtarat az IC-be ha nincs szukseg ra. Logikus nem ? Erositse meg mar valaki az allittasom. A hozzászólás módosítva: Feb 13, 2017
Teszteltem, az alábbi kód "eredménye":
Sketch uses 444 bytes (1%) of program storage space. Maximum is 30720 bytes. Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes. Egy nem használt include-dal pont ugyanez:
Ha inicializálok:
Sketch uses 1650 bytes (5%) of program storage space. Maximum is 30720 bytes. Global variables use 41 bytes (2%) of dynamic memory, leaving 2007 bytes for local variables. Maximum is 2048 bytes. Azaz +1206 byte kód és +32 byte adat Minimális használattal:
Sketch uses 1704 bytes (5%) of program storage space. Maximum is 30720 bytes. Global variables use 51 bytes (2%) of dynamic memory, leaving 1997 bytes for local variables. Maximum is 2048 bytes. Vagyis +54 byte és +10 byte adat Ez alapján én úgy gondolom, hogy nincs igazad, amint elkezdesz minimálisan is használni egy lib-et, azt szerintem beleépíti a kódba...
Köszönöm, én is így látom a helyzetet.
Igaz beepiti. Minel tobb dolgot hasznalsz belole annal tobbet epit be. Viszont ha valamelyik fuggvenyt nem hasznalod a lib fajlbol akkor abbol nem epit be semmit. Ha nem igy lenne akkor az egesznek semmi logikaja nem lenne. Mar a setup es a loop is helyet foglal, valojaba mindenfele utalas is (valtozo, char, string ... ).
Azert kerdem en toled, miert nem epitette be elsore teljesen a lib fajlot (scroll, inverz szcursor, karakterek, stb. fuggvenyeket), miert csak akkor nott a kod amikor mind es mind tobbet hasznaltad. Ha kihasznalod az egesz LiquidCryistal fuggveny altal ajanlott lehetosegeket akkor szinte mind beepiti, de ha nem akkor nincs ertelme, amire nincs szukseg arra nincs szukseg, egyszeruen. Ez a demonstracio utan is azt "vallom" hogy a lib fajlokat semmi ertelme "kigyomlalni". Ellentmondana az egesz szamitastehnikanak ha ez nem igy lenne. Telyesen logikatlanna tenne az egeszet. bocsi a hibakert, tablettrol irok A hozzászólás módosítva: Feb 13, 2017
Egy kedves forumozo innen egyszer (az elejen) irt nekem ChipKIT-re egy egyszeru string es valtozo kiiro fuggvenyt PCD8544 (Nokia 3310) lcd-re. Valojaba oda kellett tenni melle a karakter keszletet is (a ChipKIT nem birta az adafruit lib-et). Koszonom ez alkalommal is.
Na abba az esetbe, amikor az a fuggveny es a karakter keszlet is ami altalaba a lib fajlba van, integralva talalhato a steck fajlba akkor igen, van ertelme a "gyomlalasnak". En is kivagtam a nem hasznalt karaktereket a keszletbol es volt ertelme. Aztan felolem akar le is torolhetitek a konyvtar fajlokat es akkor biztos a hely sporlas A hozzászólás módosítva: Feb 13, 2017
Az azért vegyük észre, hogy egy darab inicializálás 1206 byte kód.
Majd 4 addig nem használt függvény meghívása +54 byte, és a 4-ből 3 paraméterekkel van meghívva. Én nem ismerem mélységében az atmel uC-k lelkivilágát, de erősen kétlem hogy ennek a 4 függvénynek valamint a felhasznált függőségeiknek (stdio, string, stb. lib-ek) a kódja beleférne 54 byte-ba, átlagosan 13,5 byte-ba.
A fordító csak azt fordítja be, ami kell a programhoz. Lehet az Arduino IDE kicsit rosszabb, de más fordító így cselekszik. A karakterkészlet persze, hogy sok helyet foglal, az valószínűleg egy óriási tömb volt, abból lehet faragni, ha nem használt karakterek vannak benne.
Ha mégsem bízol ebben a dologban, el kell kezdeni Arduino IDE nélkül orogramozni, és akkor tényleg csak az a programkód fog bekerülni a Uc-be, amit te bele írsz.
Azt nem nekem írtad. Én csak kipróbáltam a dolgot, mert elkezdett érdekelni.
Nos, lehet hogy igazad/igazatok van, de szerintem a fenti tesztem ezt nem támasztja alá. Persze lehet hogy pont egy speciális esetet sikerült kifognom, tudja a fene. De most nincs időm ezzel foglalkozni, és nagyon kedvem se.
Sziasztok!
Tft-re hogyan tudnék a mellékletben szereplő ikont készíteni? SD kártya használata nélkül. Elegendő lenne, ha csak az ikon lenne meg, háttér nem kell. Köszi. A hozzászólás módosítva: Feb 14, 2017
A kanna minden egyes darabja egyenes vonalakból áll, kivéve a csepp alakot. Mi a konkrét kérdés? Addig rajzolgatod a vonalakat, amíg jó nem lesz.
Én ilyet rajzolóprogramban szoktam modellezni, 1:1 méretben. Pl. ha a kijelző 320 x 240 pixeles, akkor ekkora méretű képen kísérletezgetek.
Monokróm ábrákhoz az LCDAssistant programot használom. Szép C tömböt kreál a BMP képből. Például:
Ha inicializálod a kijelzőt, ahhoz kell szinte az összes fv. Amikor pedig kiírsz egy kis szöveget, nagyon kis méretű fv. fut le, plusz a karakterek kerülnek eltárolásra. Ezért olyan minimális a különbség, ha ki is írsz a kijelzőre.
Hát, ez épp igaz lehet. Lehet beletrafáltam ezzel a speciális esettel.
Nem tudom melyik UTFT könyvtárat használod. Én ezt: Bővebben: Link
Ha letöltöd, a Tools mappában van egy ImageConverter565 nevű konvertáló program. Nekem eddig tökéletesen működött.
Konkrétan ehhez hasonló ikont szeretnék elkészíteni. Lerajzoltam négyzetrácsos papírra az elképzelést és elkezdtem [pont]okat pozicionálni kijelzőre, de nem jó helyen van, így most át kell írnom az egészet. Ráadásul minden képernyőváltáskor máshova kellene rakni. Gondoltam van egyszerűbb megoldás.
Ez nekem kissé magas, de nem képet szeretnék konvertálni, hanem pixeleket kijelölnék és beszúrom, mint egy betűt pl.
Adafruit_GFX.h és Adafruit_TFTLCD.h könyvtárakat.
Átkonvertálod az Imageconverter programmal a képet. Létrehoz egy valami.c fájlt. Ezt bemásolod a programod könyvtárába.
Utána behívod a programba: Setup elé írod ezt a sort:
Majd a programba ezt, ahol meg akarod jeleníteni:
Ennél egyszerűbb megoldás nincs. Viszont a fájl méretét hozzá kell adni a program méretéhez. Az arduino nem számolja hozzá. Sok nagy képpel hamar elfogy a hely. A hozzászólás módosítva: Feb 14, 2017
De honnan az a "0x09C4" -ertek ? A konverter progi adja ?
Az a létrehozott .c fájl fejlécében van. Onnan kell kimásolni.
Még a kép méretét is ki kell másolni, az a
sornál az 50,50 paraméter. A hozzászólás módosítva: Feb 14, 2017
Intelligens kijelző használata nem játszik? Konkrét képekkel lehet dolgozni.
A LiquidCryistal nem egy függvény.
Ha a metódus megfelel bizonyos feltételeknek (nem virtuális, nem template classban van, nem kell neki szerepelni a Virtual method table-ben), nem hívható kívülről, nem használt, és a linker külön section-okban kapja meg a metódusokat akkor a nem használt kódot optimális esetben kidobja, de nem mindig tud a fordító és a linker rendesen optimalizálni. Azt se feledjük el, hogy vannak ősök is, a LiquidCryistal őse a Print osztály, annak is vannak saját metódusai és változói amik vele együtt beülnek a kódba. Aztán berántja a String classt (az baromira nagy) és neki is vannak függőségei és ami a fentieknek nem felel meg, az befordul a hex-be. Amúgy maga az inicializálás sem egy utasítás azért, ha belegondulunk, akkor ott egy új objektumot hozunk létre, ez jár memóriafoglalással, adatok inicializálásával és a konstruktor meghívásával. Ez pár bájt kóddal jár pluszba. Az Arduino IDE és az Arduiono amúgy nem csinál semmi extrát, ráindít egy avr-gcc-t a kódra és csókolom. Ez sima C++ ami mögött van egy Arduino SDK (pár h és cpp fájl), nem kell túlmisztifikálni.
tulmisztifikalni ? . , hat te jossz a tudomanyos magyarazatokkal es hasogatod. Kulomben kosz a lecket. Nalam kihagyta ezeket az elet, nem vagyok programozo/ infos
A hozzászólás módosítva: Feb 14, 2017
Szoval azert nalam mukodik az ontozo (a felvetel egy kicsit torz lett mert tablettrol csinaltam, es hianyzik egy sortores, majd beirom). Ma vegeztem az utolso tehnikai simitasokat
A hozzászólás módosítva: Feb 14, 2017
Ebben a programban (ImageConverter565) be lehet állítani a byte/pixel értéket?Tehát pl. egy pixel, egy byte legyen.
Azt nem tudom. Alapból 2 byte egy pixel, mert RGB565 kódolást használ.
De akkor hogy állítanád be a színt? A hozzászólás módosítva: Feb 14, 2017
|
Bejelentkezés
Hirdetés |