Stránka 2 z 2

Re: PICAXE 40x2 vs LCD

Napsal: 21 črc 2018, 19:05
od Vladimir66
jak jsem pochopil, tak po zapnuti ma Picaxe nastaveny piny na vstup (krome tech co jsou natvrdo IN nebo OUT viz datasheet)
pri pouziti prikazu napr low B.1 nebo high C.0 se automaticky pin nastavi jako vystupni s prislusnym logickym stavem.

co je TRIS ?

Re: PICAXE 40x2 vs LCD

Napsal: 21 črc 2018, 19:10
od fulda
Vladimir66 píše: 21 črc 2018, 19:05 co je TRIS ?
TRIS je "třístavový registr" na úrovni samotného procesoru. tedy pokud je v registru TRISA.0=0, pak je port A bit 0 nastaven jako výstup. Ale ten picaxe basic může (a asi dělá), nějakou další obálku, která zjednodušuje programování. To je případ toho "low" a "high". Píšeš do portu, tak se má za to, že chceš aby byl výstupem....

Re: PICAXE 40x2 vs LCD

Napsal: 21 črc 2018, 20:45
od Vladimir66
to Pepa z depa:

pokud mas na tech portech B a C jen displej, tak by ten tvuj priklad mel fungovat.
jinak by jsi musel ty nedisplejove bity vymaskovat.
na ktere piny mas zapojeny displej ?

rozchozeni znakoveho displeje je jednoducha vec. to se musi podarit !

Re: PICAXE 40x2 vs LCD

Napsal: 21 črc 2018, 22:32
od Pepa z depa
Jak mám zapojený displej je na první straně. Je to na 28X2.
Já už kdysi tenhle displej zkoušel na 20M2 a fungoval. Ovšem pouze na portu B.
Rozchodit to přes high pin, low pin by asi nebyl problém. Problém by ale byl, že bych pak musel stejně všechny příkazy pro displej předělat - to by se mi to moc zesložitilo :( . Proto se ptám, jestli neexistuje nějaký elegantní softwérový "prohození" pinů.
To Vladimir66 - Piny mám použitý všechny...

Re: PICAXE 40x2 vs LCD

Napsal: 22 črc 2018, 09:51
od DavidO
Pepa z depa píše: 21 črc 2018, 22:32 Proto se ptám, jestli neexistuje nějaký elegantní softwérový "prohození" pinů.
Na Picaxe nejdou piny přeházet.

Myslím, že máš tyto možnosti:
1. upravit komunikaci a používat port B a část C třeba tak jak jsem psal minule. Protože používáš celý B a z C jen část, nebude to tak složité: Nastavíš co je potřeba na C, pak jedním vrzem nastavíš celý B (včetně potřebného nastavení RW a RS a nastavení E na 1) a pak shodíš E. (*)
2. předělat tišťák

(*) ten jeden vrz není úplně korektní, správně by E mělo jít nahoru až 20ns poté, co se mění RW nebo RS, ale prakticky to fungovat bude. Důležité je, aby E šlo dolů nejdřív 100ns po změně na datových linkách, ale to "díky" principu Picaxe nemusíš řešit, každá Picaxí instrukce je delší takže to můžeš namastit hned za to. A pak samozřejmě abys mezi posláním jednotlivých povelů displeji počkal buď na spadnutí BF anebo prodlevu podle času uvedeného pro tu kterou instrukci a to je u některých povelů překvapivě dlouhé (např. smazání 1ms)

Re: PICAXE 40x2 vs LCD

Napsal: 23 črc 2018, 19:58
od Vladimir66
doporucuji predratovat a to komplet !!!
B0 -- data 0 (displej)
B1 -- data 1
--
B7 -- data 7
a ridici signaly nechat na portu C (tam muzes cvicit high/low)

potom nebudes muset delat "opicarny" s prehazovanim bitu u byte znaku.
vubec nedava logiku si takto "nahodne" prehazet bity.

Re: PICAXE 40x2 vs LCD

Napsal: 24 črc 2018, 21:10
od DavidO
Vladimir> Když vono to na tý 28x2 je takhle všechno hezky na jedný straně švába pěkně popořadě ...
Pepa> ... ale i když se to přehodí, že data budou na B.0-B.7 a řízení na C.4-6 nebo 5-7 (jak píše Vl.), tak to taky bude hezky pohromadě a navíc se s tím bude mnohem líp zacházet. Podle mě se bohatě vyplatí tu desku předělat. Jen si dej bacha, abys dal data0 na B.0 a ne na B.7, to by ses pak za chvíli ptal, jak to tam nacpat pozpátku ;)
Obrázek

Re: PICAXE 40x2 vs LCD

Napsal: 24 črc 2018, 21:41
od Vladimir66
to David - je to dobry, 19 a 20 byla preskocena.
to Pepa - stane se. potom nasdilej radost, az ti to po predratovani bude fungovat.

a ridici signaly zapoj take podle toho vzoroveho prikladu. at to muzes otestovat bez nutnosti uprav zkusebniho programu.
C0 - RS
C1 - E
gnd - WR (mas nejaky duvod to zapojovat na port ? budes cist stav displeje ? nejjednodussi je to nastavit jen pro zapis)

Re: PICAXE 40x2 vs LCD

Napsal: 27 črc 2018, 09:34
od DavidO
Vladimir66 píše: 24 črc 2018, 21:41 WR (mas nejaky duvod to zapojovat na port ? budes cist stav displeje ? nejjednodussi je to nastavit jen pro zapis)
Čtení stavu displeje je velmi užitečné, obzvláště když jde o delší příkazy.

Základní myšlenka: posílání dat nebo příkazů se zahájí po otestování, že displej není busy. Pokud je, tak se buď komunikace dočasně odloží do fronty a obslouží později (hezčí), anebo se aktivně počká (ošklivější), nicméně při zvážení typického způsobu použití displeje - něco počítám, vypíšu, počítám, vypíšu, ... - probíhá vykonávání příkazu v řadiči displeje v době toho počítání a tedy se při příštím požadavku na výpis už buď nečeká vůbec nebo aspoň čeká míň.

Naopak, pokud si v datasheetu přečtu, že příkaz trvá xy ms a proto po jeho odeslání displeji zavolám pause xy (nebo na Arduinu delay(xy)), tak zbytečně já ztrácím strojový čas. A pokud si ani nepřečtu, že to nějakou dobu trvá a nečekám, tak se pak divím, proč to občas záhadně nefunguje, když to zapnu tak se to inicializuje až když zresetuju můj kontroler apod..

To, že to z pohodlnosti nebo neznalosti obvykle je tím druhým nebo třetím způsobem, je jiná věc ...
(Vykašlat se na jakékoli kontroly čehokoli je nejjednodušší, to máš pravdu. Tedy aspoň to vypadá nejjednodušší na první pohled. Ale není to nejlepší).