Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   322 / 839
(#) andyka válasza atus1981 hozzászólására (») Feb 13, 2017 /
 
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
(#) tbarath válasza andyka hozzászólására (») Feb 13, 2017 /
 
Teszteltem, az alábbi kód "eredménye":
  1. void setup() {
  2. }
  3. void loop() {
  4. }

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:
  1. #include <LiquidCrystal.h>
  2. void setup() {
  3. }
  4. void loop() {
  5. }



Ha inicializálok:
  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd(9, 7, 5, 4, 3, 2);
  3. void setup() {
  4. }
  5. void loop() {
  6. }

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:
  1. #include <LiquidCrystal.h>
  2. LiquidCrystal lcd(9, 7, 5, 4, 3, 2);
  3.  
  4. void setup() {
  5.   lcd.begin(16, 2 ,1);
  6.   lcd.clear();
  7. }
  8.  
  9. void loop() {
  10.       lcd.setCursor(0,0);
  11.       lcd.print("1602 test");
  12. }

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...
(#) atus1981 válasza andyka hozzászólására (») Feb 13, 2017 /
 
Ez lenne a logikus.
(#) atus1981 válasza tbarath hozzászólására (») Feb 13, 2017 /
 
Köszönöm, én is így látom a helyzetet.
(#) andyka válasza tbarath hozzászólására (») Feb 13, 2017 /
 
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
(#) andyka válasza andyka hozzászólására (») 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
(#) tbarath válasza andyka hozzászólására (») Feb 14, 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.
(#) andyka válasza tbarath hozzászólására (») Feb 14, 2017 /
 
mint irtam, torold oket
(#) Kovidivi válasza tbarath hozzászólására (») Feb 14, 2017 / 1
 
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.
(#) tbarath válasza andyka hozzászólására (») Feb 14, 2017 /
 
Azt nem nekem írtad. Én csak kipróbáltam a dolgot, mert elkezdett érdekelni.
(#) tbarath válasza Kovidivi hozzászólására (») Feb 14, 2017 /
 
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.
(#) atus1981 hozzászólása Feb 14, 2017 /
 
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
(#) Bakman válasza atus1981 hozzászólására (») Feb 14, 2017 / 1
 
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.
(#) icserny válasza atus1981 hozzászólására (») Feb 14, 2017 / 1
 
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:
  1. //------------------------------------------------------------------------------
  2. // File generated by LCD Assistant
  3. //------------------------------------------------------------------------------
  4.  
  5. const unsigned char nxp_logo [] = {
  6. 0x00, 0x04, 0x51, 0x8A, 0x21, 0x54, 0x00, 0x55, 0x22, 0x88, 0x21, 0x4A, 0x94, 0x00, 0xA8, 0x40,
  7. 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8A, 0x51, 0x06, 0x59, 0x26, 0xD9,
  8. 0x26, 0xD9, 0x22, 0x4D, 0x90, 0x2A, 0xC4, 0x10, 0xA0, 0x00, 0x80, 0x40, 0x20, 0x58, 0x84, 0x53,
  9. // stb, stb.
  10. };
(#) Kovidivi válasza tbarath hozzászólására (») Feb 14, 2017 /
 
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.
(#) tbarath válasza Kovidivi hozzászólására (») Feb 14, 2017 /
 
Hát, ez épp igaz lehet. Lehet beletrafáltam ezzel a speciális esettel.
(#) Panhard válasza atus1981 hozzászólására (») Feb 14, 2017 / 1
 
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.
(#) atus1981 válasza Bakman hozzászólására (») Feb 14, 2017 /
 
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.
(#) atus1981 válasza icserny hozzászólására (») Feb 14, 2017 /
 
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.
(#) atus1981 válasza Panhard hozzászólására (») Feb 14, 2017 /
 
Adafruit_GFX.h és Adafruit_TFTLCD.h könyvtárakat.
(#) Panhard válasza atus1981 hozzászólására (») Feb 14, 2017 /
 
Á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:
  1. extern unsigned short valami[0x09C4];

Majd a programba ezt, ahol meg akarod jeleníteni:
  1. myGLCD.drawBitmap (x, y, 50, 50,valami);

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
(#) andyka válasza Panhard hozzászólására (») Feb 14, 2017 /
 
De honnan az a "0x09C4" -ertek ? A konverter progi adja ?
(#) Panhard válasza andyka hozzászólására (») Feb 14, 2017 /
 
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
  1. myGLCD.drawBitmap (x, y, 50, 50,valami);

sornál az 50,50 paraméter.
A hozzászólás módosítva: Feb 14, 2017
(#) Bakman válasza atus1981 hozzászólására (») Feb 14, 2017 /
 
Intelligens kijelző használata nem játszik? Konkrét képekkel lehet dolgozni.
(#) Pethical válasza andyka hozzászólására (») Feb 14, 2017 / 1
 
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.
(#) andyka válasza Pethical hozzászólására (») Feb 14, 2017 /
 
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

ontozo.pdf
    
(#) andyka válasza andyka hozzászólására (») 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
(#) szitko válasza Panhard hozzászólására (») Feb 14, 2017 /
 
Ebben a programban (ImageConverter565) be lehet állítani a byte/pixel értéket?Tehát pl. egy pixel, egy byte legyen.
(#) Panhard válasza szitko hozzászólására (») Feb 14, 2017 /
 
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
(#) GPeti1977 válasza Pethical hozzászólására (») Feb 15, 2017 /
 
Ezt amit irtál ki kellene tenni az oldal elejére mert az itt levők nagy része azt sem tudja hogy az arduino mit takar.
Következő: »»   322 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem