Fórum témák

» Több friss téma
Fórum
Keresés
Lapozás: OK   2 / 17
(#) Jonni hozzászólása Okt 14, 2021
Sziasztok!

I2C Q1 tranzisztorát sikerült kinyírnom Nem tudja valaki az értékét?
(#) mateatek válasza Skori hozzászólására (») Máj 3, 2021
Idézet:
„Kíváncsi voltam meddig tudom feszegetni a határokat”


Ha megnövelnéd az LCD órajelét ellenállás cserével, lenne ez még jobb is.

Vélhetőleg az Arduinós libekben is lehetne ezt az utat követni, mert ott is µs-os késleltetések vannak. Gondolom ezeket biztonsági ráhagyással teszik bele a kódba, mégpedig a 3.3 voltos, lassabb órajelű LCD-khez igazodva.
(#) Skori válasza Skori hozzászólására (») Máj 3, 2021
Kíváncsi voltam meddig tudom feszegetni a határokat, és elkezdtem csökkenteni a µs-os késleltetéseket a programban, hogy tovább növeljem a kijelzőre írás sebességét.
A tesztelt kijelzővel 39µsec/karakter sebességig nem hibázott a kijelző, 38µsec/karakter sebességnél viszont már előfordultak hibák. Tehát a 2x16-os kijelző kb. 1,25ms alatt teleírható (nyilván ez függ az adott kijelzőtől is, régebbi vagy más típusok esetleg lassabban írhatók)
(#) Skori válasza mateatek hozzászólására (») Máj 3, 2021
Idézet:
„Csináltam egy tesztet. 10-szer egymás után teleírtam mindkét sort az LCD-n. Törlés nem volt, csak felülírás.
4 biten: 74 millisec.
I2C alap sebességen: 244 millisec.
I2C 800000-es sebességen: 66 millisec.”
Korábban említettem, hogy megmérem én is a (a weblapomon leírt) léptetőregiszteres megoldással mennyi ideig tart teleírni a 2x16-os kijelzőt. BluePill-t használtam, 74HCT595 léptetőregisztert, és hasonlóképp 10x teleírtam a kijelzőt (kipróbáltam 100X teleírást is, az eredmény visszaosztva ugyanaz). Gyakorlatilag a 10x teleírás 26ms ideig tartott, azaz: kb. 81µsec/karakter sebességgel írta a kijelzőt.
Összehasonlításképpen a korábbi méréseddel:
4 biten: 74 millisec. --> 231µsec/karakter
I2C alap sebességen: 244 millisec. --> 762µsec/karakter
I2C 800000-es sebességen: 66 millisec. --> 206µsec/karakter
A konklúzió számomra: amenyiben számít, hogy mennyi ideig tart a kijelző írása, akkor a léptetőregiszteres megoldás elég jó alternatíva...

A mérést a forrasztóállomásom kódjába tettem bele ideiglenesen, ill. próbaképpen:
  1. uint32_t tt1,tt2,cc=10;
  2. tt1=millis();
  3. for(;cc;cc--){
  4. lcdsh_Line1(); lcdsh_str2("Forrasztóállomás",16);
  5. lcdsh_Line2(); lcdsh_str2("JBC245 Skori v02",16);
  6. }
  7. tt2=millis();
  8. lcdsh_Line2();lcdsh_num(tt2-tt1,16);
(#) Jonni válasza majkimester hozzászólására (») Márc 11, 2021
Szia
Köszi ..... tálán valamikor erre is szükségem lesz.
(#) Jonni válasza Pethical hozzászólására (») Márc 11, 2021
Ott 5.Character Generator ROM Pattern Table.2- azt írja hogy megvan minden magyar betű. Beszerzek 1 ilyet.
(#) majkimester válasza Jonni hozzászólására (») Márc 11, 2021
Szia, sejtettem, hogy amit leírtam még bonyolult, de ha sok szöveg van és más más karakterkészletű LCD-hez is szeretnéd használni, akkor ez a legjobb módszer. A többi az favágás, de nyilván működik kicsiben.

Az Angol/európai készletben nincs kis ő és ű, ezeket mindenképpen definiálnod kell.
Ezen kívül a ritkán használ nagy betűk Á, Í, Ó és Ú sincsenek.
Nálam ez az átváltó tábla erre a karakter készletre:

  1. // English-European character set
  2.     case 'á' : return 0xA0;
  3.     case 'é' : return 0x82;
  4.     case 'í' : return 0xA1;
  5.     case 'ó' : return 0xA2;
  6.     case 'ö' : return 0x94;
  7.     case 'ő' : return 0x01;
  8.     case 'ú' : return 0xA3;
  9.     case 'ü' : return 0x81;
  10.     case 'ű' : return 0x02;
  11.     case 'Á' : return 'A';
  12.     case 'É' : return 0x90;
  13.     case 'Í' : return 'I';
  14.     case 'Ó' : return 'O';
  15.     case 'Ö' : return 0x99;
  16.     case 'Ő' : return 0x99;
  17.     case 'Ú' : return 'U';
  18.     case 'Ü' : return 0x9A;
  19.     case 'Ű' : return 0x9A;
  20.     case '°' : return 0xCD;  // fok jel
(#) Pethical válasza Jonni hozzászólására (») Márc 11, 2021
Nézd meg az adatlapját, abban általában benne van a karakterkészlete.
(#) Jonni hozzászólása Márc 11, 2021
Sziasztok

A segítséget mindenkinek köszönöm a 40x2 lcd témába.
majkimester a te megoldásodhoz én egy kicsit amatőr vagyok de az biztos, hogy működne.

Már csak 1 kérdésem lenne. A TME-nél láttam ezt a 40x2-es Lcd-t. Azt írja ,hogy támogatott karkterkészlet Angol/európai . Ennél a kijelzőnél elég lenne magyarul írnom és az magyrul jelenne meg vagy itt is létre kéne hozni saját karaktert?
(#) Jonni válasza benjami hozzászólására (») Márc 10, 2021
Köszi. Holnap megnézem.
(#) benjami válasza Jonni hozzászólására (») Márc 10, 2021
Pillanatok alatt összedobhatsz egy tesztprogramot, ami megjeleníti a teljes karakterkészletet a kijelzőn (nyilván csak scrollozva). De ha biztosra akarsz menni, akkor használd a 8db szabadon szerkeszthető karaktert, amit a 0..7 vagy a 8..15 karakterkódon tudod elérni.
Ötletadónak itt egy általam 1000 éve írt karakteres lcd driver, azon belül az examples / demo-cursor mappában vannak a példák pic és avr procira.
(#) Jonni válasza Pethical hozzászólására (») Márc 10, 2021
Most átalakítottam ilyenre

  1. byte a1[8] = {B11111, B00000, B11111, B1, B00000, B11111, B00000};


ennek semmi köze az á betűhöz de ugyanazt írja
(#) Pethical válasza Jonni hozzászólására (») Márc 10, 2021
Ez sajnos csak a kijelző adatlapja, azt lenne jó tudni, hogy milyen meghajtó IC van rajta.
Pár kérdés:
Másik saját betűvel is ökörködik, vagy csak az á-val?
Ha az á helyett valami más mintát írsz be (pl tele kocka, vagy csíkok), akkor abból mi lesz?
Ha másik címre teszed az át (pl. 2) és úgy írod ki, akkor mi történik?
A hozzászólás módosítva: Márc 10, 2021
(#) Jonni válasza Pethical hozzászólására (») Márc 10, 2021
Közbe megtaláltam az adatlapját. Esetleg ki lehet belőle valamit böngészni.

https://www.alldatasheet.com/datasheet-pdf/pdf/43112/SHARP/LM40X21A.html
(#) Jonni válasza Pethical hozzászólására (») Márc 10, 2021
Most így.

A szöveg Világitás akar lenni
(#) Pethical válasza Jonni hozzászólására (») Márc 10, 2021
Arra gondolt a kolléga, hogy szívesen segít mindenki, de segítséggel sem könnyű mindig. A legegyszerűbb és legkönnyebb út, ha valaki megcsinálja helyettünk, pénzért.

Hogy néz ki az a krix krax ami az á helyett jelenik meg?
(#) Jonni válasza Kovidivi hozzászólására (») Márc 10, 2021
Kicsit azt érzem , hogy nem segítesz szívesen. De azért köszi neked is. És utánaolvastam Debreceni Megtestesülés Plébánia pdf fájljában itt írtam nem kértem , hogy 100 soros kódot írjál nekem csak, hogy írd le hogy hogyan gondolod.
Idézet:
„(max., ha kifizeted valakinek)”

Én pl szívesen segítek ingyen (ha épp tudok).
(#) Kovidivi válasza Jonni hozzászólására (») Márc 10, 2021
Nem vagy fárasztó, csak én türelmetlen. Meg picit zavaró, hogy nem olvasol utána egyáltalán. De ezen kívül nincs semmi, nekem sem kötelező, hogy írjak, úgyhogy te se vedd magadra amit írtam. Egyszerű sosem lesz, azt az utat ne is keresd (max., ha kifizeted valakinek)! Ezt el kell fogadnod.
A hozzászólás módosítva: Márc 10, 2021
(#) Jonni válasza Jonni hozzászólására (») Márc 10, 2021
Huuuuuuuh. 40x2-esen az á betű még igy is krix-krax
  1. lcd.print("Na ne m");
  2. lcd.write(1); // á
  3. lcd.print("r");
(#) Jonni válasza Pethical hozzászólására (») Márc 10, 2021
OK. Köszi szépen.
Igazából Kovidivi szerint ez egyszerűbb (háát nekem nem)
(#) Pethical válasza Jonni hozzászólására (») Márc 10, 2021
Nem tudom, én csak leirtam amit kértél
(#) Jonni válasza Pethical hozzászólására (») Márc 10, 2021


És ez az egyszerű megoldás?
Ez kb 6szor bonyolultabb (átláthatatlanabb)
de működik (eddig még csak a 16x2-esen )
A hozzászólás módosítva: Márc 10, 2021
(#) Pethical válasza Jonni hozzászólására (») Márc 10, 2021
  1. lcd.print("Na ne m");
  2. lcd.write(1); // á
  3. lcd.print("r");
(#) Jonni válasza Kovidivi hozzászólására (») Márc 10, 2021
Itván itt az 5-ös lapon azt írja
lcd.write(karakterkód) – egy karakter kiíratása
lcd.print(”szöveg”) – szöveg kiíratása

Sehogy se jó.
Fárasztó vagyok?
Kipróbálva le tudnád írni?
Sehogy nem fogadja el a fordító
Pontosan mi van a zárójelbe?
lcd.write (?????);
(#) Kovidivi válasza Jonni hozzászólására (») Márc 10, 2021
És ha több karaktert egymás után írsz ki (irónia). Gondold át egy kicsit ezt az egészet. Szeretnélek a jó útra terelni, de ez így nagyon fárasztó.
Kiírod: "sz" utána az ö betűt, aztán "veg". Ennyi. Megkapod a kijelzőre a "szöveg" szót...
(#) majkimester válasza Jonni hozzászólására (») Márc 10, 2021
Elméletben amit csinálnod kellene:
Létrehozni egy saját LiquidCrystal osztályt, mondjuk MyLiquidCrystal néven, ami a LiquidCrystal-ból származna, és ebben override-olni a write függvényt. Beletenni egy switch-case-t ami átváltaná az ékezetes karaktereket a megfelelő kódra, és azzal felhívná a szülő osztály write függvényét.
A programodban a LiquidCrystal helyett a MyLiquidCrystal-t kellene használni, és akkor menne a lcd.print("árvíztűrő tükörfúrógép") is.

Átváltásra én például ezt használom (natív c-ben), persze az LCD karakterkészletének megfelelően van többféle átváltási táblázatom. Az English-Japanese karakter készlet a leggyakoribb.

  1. char LCD_map_char (char ch)
  2. {
  3.   switch(ch) {
  4.     // English-Japanese set
  5.     case 'á' : return 0x01;
  6.     case 'é' : return 0x02;
  7.     case 'í' : return 'i';
  8.     case 'ó' : return 0x03;
  9.     case 'ö' : return 0xEF;
  10.     case 'ő' : return 0x04;
  11.     case 'ú' : return 0x05;
  12.     case 'ü' : return 0xF5;
  13.     case 'ű' : return 0xF5;
  14.     case 'Á' : return 'A';
  15.     case 'É' : return 'E';
  16.     case 'Í' : return 'I';
  17.     case 'Ó' : return 'O';
  18.     case 'Ö' : return 'O';
  19.     case 'Ő' : return 'O';
  20.     case 'Ú' : return 'U';
  21.     case 'Ü' : return 'U';
  22.     case 'Ű' : return 'U';
  23.     case '°' : return 0xDF;  // fok
  24.   }
  25.   return ch;
  26. }



A LiquidCrystal-ból leszármaztatásra egy hasonló példa, csak más osztállyal:
Példa

A szülő osztályból a write felhívása meg ha minden igaz LiquidCrystal::write(ch) módon megy.
(#) Jonni válasza Kovidivi hozzászólására (») Márc 10, 2021
Nem 1 karaktert akarok kiíratni hanem egy szöveget.
(#) Kovidivi válasza Jonni hozzászólására (») Márc 10, 2021
Megnézted a google első találatát? "lcd.write(byte(0));".
(#) Jonni válasza Kovidivi hozzászólására (») Márc 10, 2021
Pontosabban... hogy is?
Következő: »»   2 / 17
Bejelentkezés

Belépés

Hirdetés
XDT.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