PICAXE a menu na LCD

tomasp
Příspěvky: 55
Registrován: 15 dub 2014, 23:01

Re: PICAXE a menu na LCD

Příspěvek od tomasp »

Čekal bych, že pokud je kurzor hned za textem, tak právě tím příkazem "pohyb kurzoru vlevo" se posune pod poslední písmeno textu?

Kód: Vybrat vše

serout B.0, baud, (254,16)
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: PICAXE a menu na LCD

Příspěvek od jova »

Zkouším to tímhle prográmkem a těch 16 udělá to, že se číslo začne zobrazovat o 1pozici vlevo. Kurzor tam ale není. 14 zobrazí spodní kurzor, 15 pak i blikající obdélník. Vše ale za poslední číslicí.

Kód: Vybrat vše

;#icaxe 08m2
symbol baud=N4800
Pause 500

for b1=0 to 255
b2=b2+1
serout C.1, baud, (254,1); maže LCD
serout C.1, baud, (254,16)
serout C.1, baud, (254,130);3tí sloupec první řádek

serout C.1, baud, (#b2);zobrazuje čísla

pause 1000
next b1
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: PICAXE a menu na LCD

Příspěvek od jova »

Ideální by pro mě bylo, kdybych dokázal ten kurzor ovládat zcela samostatně a nastavovat podle potřeby na libovolnou pozici bez návaznosti na ten měnící se znak. Tím bych označoval měnící se znaky, zhruba takto:
gif.gif
gif.gif (11.65 KiB) Zobrazeno 7971 x
tomasp
Příspěvky: 55
Registrován: 15 dub 2014, 23:01

Re: PICAXE a menu na LCD

Příspěvek od tomasp »

Provedl jsem v kódu následující úpravy (oznacil jsem je komentáři začínajícími tomasp:)
1. Před cyklus for jsem dal příkaz "Zobrazuj kurzor". Zvolil jsem podtržítko, lze změnit na blikající obdélník
2. Příkaz "Posuň kurzor doleva" jsem posunul až za zobrazení čísla. Tím by se měl vrátit pod poslední vypsaný znak

Pod příkaz z bodu dva jsem dal ještě zakomentovanou druhou možnost, kdy jsem přikázal kurzoru přemístit se na absolutní polohu tam, kde se původně začalp psát to číslo. Je to vlastně znovu zavolaný tvúj příkaz, kterým jsi určuješ, kam se má číslo psát. Tato varianta umístí kurzor pod první cifru čísla. Rozdíl oproti první možnosti se projeví samozřejmě až u víceciferných čísel.

Snad tam není nějaká syntaktická chyba nebo překlep, nemohu to vyzkoušet.

K tomu obrázku, jak si to ve finále ideálně představuješ, aby to vypadalo. Nejsem si jist, jestli to vůbec lze takto zobrazit (vícemístný kurzor), spíš asi ne.

Kód: Vybrat vše

;#icaxe 08m2
symbol baud=N4800
Pause 500

serout C.1, baud, (254,14);tomasp: Zobrazuj kurzor. Lze misto 14 dat 15, pokud chci blikajici obdelnik
for b1=0 to 255
b2=b2+1
serout C.1, baud, (254,1); maže LCD
serout C.1, baud, (254,130);3tí sloupec první řádek

serout C.1, baud, (#b2);zobrazuje čísla
serout C.1, baud, (254,16);tomasp: po zobrazeni cisla vratim kurzor zpet o jednu pozici
;serout C.1, baud, (254,130);tomasp: nebo se takhle vratim tam, kde jsem zacal psat cislo

pause 1000
next b1
jova píše:Zkouším to tímhle prográmkem a těch 16 udělá to, že se číslo začne zobrazovat o 1pozici vlevo. Kurzor tam ale není. 14 zobrazí spodní kurzor, 15 pak i blikající obdélník. Vše ale za poslední číslicí.

Kód: Vybrat vše

;#icaxe 08m2
symbol baud=N4800
Pause 500

for b1=0 to 255
b2=b2+1
serout C.1, baud, (254,1); maže LCD
serout C.1, baud, (254,16)
serout C.1, baud, (254,130);3tí sloupec první řádek

serout C.1, baud, (#b2);zobrazuje čísla

pause 1000
next b1
Uživatelský avatar
gilhad
Příspěvky: 262
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: PICAXE a menu na LCD

Příspěvek od gilhad »

Pokud nejde vicemistny kurzor primo, tak by se s nim dalo pod tema pozicema jezdit nejakou rozumnou rychlosti
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: PICAXE a menu na LCD

Příspěvek od jova »

Pánové díky.
To: tomasp - chová se to přesně jak píšeš.
To: gilhad - pokud se ten kurzor adresuje před příkazem (254,16) o -1 pozici pomocí "souřadnic LCD", dá se umístit v podstatě kamkoliv a dá se pak vytvořit i např. blikající dvojice. Škoda že se nechová jako klasický znak, pak by se dal použít i na více místech současně. Rychlým přepínáním vytvořit například tu dvojici nejde, přestává být už vidět.
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: PICAXE a menu na LCD

Příspěvek od jova »

Jak si tak s tím hraji, napadlo mě převést většinu nabídek menu do nevyužité paměti procesoru toho LCD.
V původním programu http://sd-2.archive-host.com/membres/up ... _serie.zip to řeší pomoci EEPROM, to mi moc nevyhovuje, je tam málo místa a složitě se to z toho dostává. Nejde to nějak jednodušeji? Zatím jsem to zkoušel úpravou toho "odskoku 253" ale o moc úspěšnější jsem nebyl. Nedá se to řešit "sériově" a psát celá slova do " než to tam posílat těmi pulsy?

Kód: Vybrat vše

msg:

branch b1,(btn0,btn1);výběr slova 253,0 = Ahoj ; 253,1 = nebo

btn0: 
pinsB = "A"
pulsout enable,1
pinsB = "h"
pulsout enable,1
pinsB = "o"
pulsout enable,1
pinsB = "j"
pulsout enable,1
return

btn1: pinsB = "n";
pulsout enable,1
 pinsB = "e";
pulsout enable,1
 pinsB = "b";
pulsout enable,1
 pinsB = "o";
pulsout enable,1
return
DavidO
Příspěvky: 1131
Registrován: 01 kvě 2013, 21:27

Re: PICAXE a menu na LCD

Příspěvek od DavidO »

Myslíš do procesoru (Picaxe) , co je k němu připojený displej, anebo do řadiče, co je na tom displeji jako takovém? To druhé jednoduše nejde, ale v tom prvním případě něco takového půjde. Navíc, proč se bát EEPROM, vždyť v tom francouzském programu máš ukázané, jak na to - na začátku jsou definice textů a pak úplně na konci jejich výpis, no tak bys nahradil ty texty This is msg 2 za svoje a pak volal serout C.1, baud, (253,číslo). Francouz počítá s pevnou délkou, ty by sis mohl udělat různě dlouhé a v tabulce mít převod mezi číslem řetězce, který chceš vypsat a jeho adresou v EEPROM a délkou k vypsání (pomocí konstrukce TABLE a příkazu READTABLE, v ukázkovém kódu v dokumentaci těchhle příkazů máš rozepsané použití, které se ti přímo hodí, jen místo serout ... by tam bylo pinsB=b1 a pulsout enable,1jako ve francouzově msg). A rozhodně to je vhodné posílat jako celý řetězec najednou a ne jak jsi to uvedl pinB=...pulsout...pinB=...pulsout (to ti žere paměť mnohem víc).
Ono teda Picaxe není úplně šikovný na práci s řetězci, ten kód na ovládání LCD fikaně používá seriovou linku čímž pak dostane hezky písmeno po písmenu, ale když už tam jako separátní modul je, tak proč ho nevyužít. Kdyby docházela jeho paměť, tak vyhoď ty definice písmenek s "aksánama" (podprocedura cardef)
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
DavidO
Příspěvky: 1131
Registrován: 01 kvě 2013, 21:27

Re: PICAXE a menu na LCD

Příspěvek od DavidO »

jova píše:Rychlým přepínáním vytvořit například tu dvojici nejde, přestává být už vidět.
Nepřepínej tak rychle a půjde to.
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
jova
Příspěvky: 361
Registrován: 16 pro 2013, 11:40

Re: PICAXE a menu na LCD

Příspěvek od jova »

Využívání té EEPROM jsem se chtěl vyhnout, protože mi v paměti 20m2 co řídí to LCD zbývá 3x více prostoru než v její EEPROM. Jinak co jsem zkoušel, tak mi to pomocí EEPROM funguje podle Francouze, jen bych musel dořešit to vyhledávání správného řetězce a dráždí mě to for-next.
Posílám to tam pomocí pinB=...pulsout...pinB=...pulsout, protože jsem nepřišel na to jak to tam poslat jako řetězec. Proto se ptám zda to nejde jinak?
To pomalé blikání funguje, to už jsem zkoušel.
Odpovědět