arduino I2C displej nestabilní znak

Raspberry, Arduino, Mini-PC a další

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
bu2520
Příspěvky: 4021
Registrován: 16 črc 2007, 02:00
Bydliště: u HK

arduino I2C displej nestabilní znak

#1 Příspěvek od bu2520 »

Mám takový problémek. Má připojené arduino nano na displeji (hd44780) přes I2C a některé znaky jsou neklidné. Pokud se třeba jedním řádkem přepnu do menu údaj na řádku který se nemění se sklidní. Vždy se jedná o jeden znak . Dá se to nějak ošetřit, nebo je to vlastnost. Dělá mi to s různými programy s různými displeji i moduly UNO jsou pokaždé jiné.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#2 Příspěvek od fero_b »

je na tej I2C zbernici okrem toho displeja aj ine zariadenie?

Uživatelský avatar
bu2520
Příspěvky: 4021
Registrován: 16 črc 2007, 02:00
Bydliště: u HK

#3 Příspěvek od bu2520 »

stává se mi to v různých aplikacích. Ale abychom mluvili o konkrétní tak u ní je na I2C pouze displej jeded A vstup měří napětí které zobrazuje a u něho první znak mihotá a na jednom pinu je DH22 jinak jsou obsazeny jen boolean IO porty. Teď mě napadlo vzorkovat měření napětí.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#4 Příspěvek od fero_b »

ok, par tych displejov som uz programoval, neviem ako mas v softweri vyrieseny "updejt" dipleja, ci to robis v hlavnej slucke alebo v nejakych preruseniach.

Kazdopadne, ten displej je taky dost "self care" - nasypes donho data s potom uz zobrazuje sam, akurat pokial si pametam, komunikacia je troska pomalsia (ja som to nerobil cez I2C ale cez taku 4bitovu zbernicu) problem by som videl niekde v obsluznom softweri, ktory, neustale obnovuje data v displeji a predosla operacia s displejom este nedobehla..Skus znizit rychlost obnovenia udajov na displeji..

dalsi problem viacerych zariadeni na I2C ako som hore naznacil, je ze ak by si s nimi komunikoval aj v hlavnej slucke aj v preruseniach, ze sa ti to proste pobije... v takomto pripade je treba I2C komunikaciu dat len do hlavnej slucky, a prerusenia len zdvihnu zastavku (poziadavku na nejaku I2C komunikaciu) a tu vybavi hlavna slucka, a zastavku zmaze..

Uživatelský avatar
bu2520
Příspěvky: 4021
Registrován: 16 črc 2007, 02:00
Bydliště: u HK

#5 Příspěvek od bu2520 »

moc děkuju za tipy, máš zřejmě pravdu, zkusím to podle tvých nápadů upravit ještě jednou dík.

Uživatelský avatar
fero_b
Příspěvky: 582
Registrován: 17 kvě 2004, 02:00
Bydliště: Kosice

#6 Příspěvek od fero_b »

ja by som to spravil takto (aj ked ja nerobim s arduinom, ale programujem ciste atmely): pustil by som si prerusenie od casovaca ma povedzme 50-100ms. Data ktore chces zobrazit, neviem kde ziskavas, ale je to asi jedno, ak niekde v preruseni- tak program by to mal len ulozit do nejakej pameti a dalej sa o to nestarat (ci sa zobrazili na displeji), maximalne mat 2 bufre (kde by si to zapisoval na striedacku) na data, ale na uvod to nie je podstatne - to nesuvisi s nestabilnym znakom...

prerusenie od casovaca nastavi povedzme kazdu pol sekundu (budes inkrementovat pocitadlo v preruseni az naratas pol sekundy) a zdvihnes vlajocku (flag).

Hlavny program bude kukat na tu vlakocku a ked ju niekto zdvihne vybere tie data z pameti a nasype ich do displeja.

A aby si to mal super safe, mozes si urobit este jeden flag, ktory bude robit "ochranne pasmo" ked zapisujes do displeja, v okamihu ked zacnes zapisovat do displeja, nastavis tento flag, a v preruseni bude podmienka ze ked je tento flag zdvihnuty tak nevystavujeme poziadavky na zapis na displej (lebo to prave prebieha), a ked dozapisujes, tak flag zhodis, a zhodis aj flag, ktorym prerusenie vystavilo poziadavku na zapis na displej, a znulujes pocitadlo preruseni. Tym povolis preruseniu vystavit novu poziadavku, ktora pride najskor o dalsiu pol sekundu...

dufam ze som ta velmi nedoplietol :D

Odpovědět

Zpět na „Miniaturní počítače (Arduino, Raspberry a další)“