Redingas LCD's dabartinę kursoriaus poziciją

S

saeed_pk

Guest
Hi all,
Aš dirbu dėl 20x4 LCD PIC18F452 ir Hi-Tech PICC-18 Kompiliavimo
Aš naudoju LCD modulyje pateikiama pavyzdžių katalogas.

Mano projekto Nuolat atnaujina kovos LCD ir kai RCIF eina aukštas (eilės receptions Nutraukiama) aš turiu rodyti Sustabdyti Prisijungti ant viršutiniame dešiniajame kampe.

Kai Nutraukiama atsirasti jis rodomas, bet po ISR mano skaitiklis duomenys, kurie turi būti rodomi centre pradėti rodyti trečiosiose linija i raštuotas problema žymeklio vietoje, kai i grįžo iš ISR LCD žymeklio nėra grąžinamas į ankstesnį kur ji buvo.

Man reikia įprastas būdas kaip skaityti žymeklį

savo dabartinę buvimo vietą ir tt ir gali atsikratyti šios problemos kreipkitės patarimo.
 
Jūs galite atsikratyti šios problemos naudojant šiuos būdus

1.Donot prieigos LCD iš nutraukia, vietoj nustatytų vėliavos nutraukti ir atnaujinti LCD pagrindiniame linijos.

2.Prieš siunčiant duomenis, LCD, nustatyti kursoriaus vietą.Įsitikinkite, kad nutraukti nekyla tol, kol visiškai duomenys siunčiami į LCD.

3.Pabandykite dabartinę kursoriaus vietą, ir jį, jei yra neteisingas.(Nors kodavimo yra beveik toks pat, jis bus greitesnis nei 2.) Galima gauti kursoriaus vietą Redingas komandų registrą, jei naudojate "Hitachi 44780 kontrolierius.Kitos valdiklyje taip pat suteikia panašų funkcionalumą.

Norėčiau 1 variantas aptartuosius.

 
Uczyniłem antrąjį metodą,
kas vyksta i gauti serijos nutraukti aptikti simbolių "A" kas atsitiks, kai i išjungti Pertraukties kad pobūdį ateina viduje ir i miss it.

Jūsų pirmas variantas atrodo naudinga, tačiau leiskite man ReDesign sort of thing.

trečiosiose būdas Jums papasakojo apie Redingasjei aš pasirinkite Valdymo registras (RS) ir pasirinkite Skaityti (R / W) ir i skaityti baitas tai duok man ymeklis, arba kreipkitės patarimo man
 
Tekstas LCD, kurie yra pastatyti 44780 valdytojas jums dabartinis Rodyti RAM vietą (kursoriaus vietą), kai jūs skaitote komandų registrą.(TPĮ užimtas Vėliavos ir žymeklio vietoje yra 7 LSBs, todėl jūs turite IR rezultatas su 0x7F)

Jei Jūsų tekstas LCD nebuvo pastatyta virš 44780, tuomet jūs turite perskaityti jo dokumentus ir sužinosite, kaip galite perskaityti kursoriaus vietą.

 
Aš taip pat panaši problema 16x2 LCD
Aš pakeičiau savo kodą naudoti 2 registrai kiekvienoje eilutėje

Aš Atnaujinta antra eilutė UART ISR ir pirmosios linijos klaviatþra
kad kai i grįžo iš ISR buvau prarasti kursoriaus poziciją
todėl naudojamas registrų saugojimo vietą žymeklio
Į ISR

Pirmasis apkrova antrą eilutę registre vertę ir perkelkite žymeklį į tą vietą increament registre
tada rodyti duomenis
tada įkelti pirmoje eilutėje registre vertę ir perkelti kursorių į šią vertę

taigi aš ne prarasti savo žymeklio padėties ir išlaikyti tokį patį bet kokio tipo ekranas

Taip pat galite pabandyti šį metodą ir atsikratyti bet ekrano problema

 
naudoti kitą kintamąjį rasti kursorių į skirtingas kryptis.

nenaudokite Integruotą maršrutai rasti kursorių 16 * 4 LCD modulis.

 
Aš naudoju šį metodą.

Aš buffer1 į buffer20.Išjungti žymeklio.Kas nors aš noriu rašyti, aš rašau į iškarpinę tada perkelti visos partijos viena pereiti prie LCD modulis.

Jei aš noriu įrašyti į 12 vietą, aš rašyti buffer12 ir atnaujinti LCD.

Naudoti tą patį buferio visų linijų.

Aš Initialise kursorių į buveinės vieta, pasirinkite eilutės pradžioje eilutę ir tada parašyti 20 baitų, LCD.

Hope this helps

Į sveikatą

Ravi

 

Welcome to EDABoard.com

Sponsor

Back
Top