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

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

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

#1 Příspěvek 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

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek 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ů.
Přílohy
disp.png
(46.28 KiB) Staženo 90 x
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

#3 Příspěvek 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?

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#4 Příspěvek 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...
Naposledy upravil(a) ZdenekHQ dne 22 bře 2010, 20:18, celkem upraveno 1 x.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

#5 Příspěvek 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...

Uživatelský avatar
AB1
Příspěvky: 312
Registrován: 23 lis 2009, 01:00

#6 Příspěvek 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ů?

Uživatelský avatar
michalino
Příspěvky: 348
Registrován: 03 srp 2009, 02:00

#7 Příspěvek 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

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“