Stránka 1 z 1

LCD 20x4 vypíše v pořadí 1,3,2,4 řádek, jak vypsat popořadě?

Napsal: 22 bře 2010, 19:19
od michalino
Dobrý den, prosím Vás o pomoc..

vypisuju znak X na LCD displej a chci ho vypisovat po jednotlivých řádcích shora..nějak nefunguje LOCATE a pořád to chaoticky vypisuje na řádek jaký se zachce...

vypisovani provadim timto prikazem (zjednodusene):


radek=1

do
If B = 13 Then

Incr Pozicevstringu 'další znak
If Pozicevstringu > 20 And Pozicevstringu < 41 Then radek=2

End If

Locate radek , Pozicevstringu
Lcd "x" ' zobrazeni X
loop

Nefunguej vypisovani na postupne 1první 2hý 3tí 4tý řádek..
Prosím Vás o radu, jak to udělat?

děkuji

Napsal: 22 bře 2010, 19:35
od ZdenekHQ
Myslím, že tahle tabulka hovoří za vše. Prostě to musíš nějak ošetřit - já používám rutinu, co přesně nastaví řádek a sloupec a pak už jen posílám přiměřeně "dlouhé" řetězce znaků.

Napsal: 22 bře 2010, 19:40
od michalino
tak to je síla.... 8O


:wink: děkuji za příspěvek....

Ale přece příkaz

Locate radek, pozice

mluví za vše...jim přece tohle můžu usměrit a nechce se tomu...i když locate směřuje na druhý řádek, vypíše se text na třetí nebo čtvrtý řádek...

Locate tomu nepomůže?

Napsal: 22 bře 2010, 19:47
od ZdenekHQ
To je tak, když se tady používá asi 20 programovacích jazyků bez jakékoliv definice v otázce a každý funguje jinak. Jestli je Pozicevstringu myšleno jako sloupec, měl bys po přesměrování na patřičný řádek odečíst 14h nebo i víc...

Napsal: 22 bře 2010, 20:03
od michalino
Ano,

jedná se o BASCOM

deklarace je takováto:

Dim radek As Byte ' proměnná hlídající řádek na LCD
Dim Pozicevstringu As Byte
Dim Vsechny_znaky_X As String * 80 ' řetězec znaků na první stránce
Dim Znaky(80) As Byte At Vsechny_znaky_X Overlay

String*80 mám proto, že se jedná o 4 řádky krát 20 znaků = celkem 80 znaků

když stisknu klávesu vypisuje se mi postupně od prvního znaku ...

aha....teď jsem to pochopil......

jestli to tak je, pak se omlouvám za dotaz...

Napsal: 22 bře 2010, 20:10
od AB1
Budeme hádat že máš displej 20*4
a že jsi napsal řádek
Config LCD = 20 * 4

Podívej se na svůj kód

Kód: Vybrat vše

 If Pozicevstringu > 20 And Pozicevstringu < 41 Then radek=2

End If

Locate radek , Pozicevstringu 
Jak můžeš psát do sloupců 21 až 40 u displeje, který má dvacet sloupců?

Napsal: 22 bře 2010, 20:29
od michalino
Tohle mi došlo v textu výše... opravdu...., pracuju teď na přepočtech...

opět se stydím, jestli je to v tomto...

pořád jsem se soustředil na řádky a sloupce jsem úplně zapomněl..

děkuji AB1