pomalé Arduino NANO

Odpovědět
MakoDz
Příspěvky: 1
Registrován: 26 bře 2018, 21:01
Reputation: 0

pomalé Arduino NANO

Příspěvek od MakoDz » 26 bře 2018, 21:10

Bastlím si pomocí Klonu Arduina NANO přepínáni topení mezi akumulační nádrží nahřívanou kamny a elektro kotlem. Na Arduino nano mám zapojeny 3xRelé, Rembrandtovu klavesnici (s třemi tlačítky), teploměr Dallas 18B20 a OLED 0,96" Vše mi funguje jak má, jen je problém s rychlostí. Jen než se přepíše celý display, tak je to tak 5sekund a když zmáčknu tlačítko tak ho musím mít stisknuté cca 5 sekund nez arduino zachytí tlačítko. Program zcela jistě není vůbec optimální, ale zas tak velký dle mého není (zabírá cca 63% paměti).

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: pomalé Arduino NANO

Příspěvek od jankop » 26 bře 2018, 21:29

To je jasný, ten kód je špatně napsaný. Kdyby to bylo dobře napsaný, tak by to bylo možná i rychlé. Na napravení doporučuji přepsat všechny příkazy, které zpomalení způsobují, pak by se to mělo zrychlit.

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: pomalé Arduino NANO

Příspěvek od gilhad » 26 bře 2018, 23:53

Graficke knihovny se na Arduinu potykaji s nedostatkem pameti (spocti si pocet pixelu na obrazovce - casto se kvuli uspore pameti pouziva postupne generovani obrazu pro jednotlive casti, takze se generujici funkce vola opakovane a vzdy se prekresli jen tolik, kolik se vejde do prave obnoivovaneho okna) a rychlozsti prenosu (ma-li to byt jednoduche, prenasi se cela obrazovka, tak si to pronasob, pridej rezii pro I2C (+20% velikosti + hlavicky a prikazy a deleni na mensi bloky, pri spatnem navrhu jsem videl i trvale 20x vetsi prenos, nez byl objem prenesenych dat) a vem v uvahu jeji dost omezenou rychlost (pokud to je I2C, SPI je rychlejsi). Takze prekresleni celkem trva. Da se to vyrazne urychlit tim, ze prekreslujes jen co se zmenilo (ale zase to casto chce vic pameti).

Asi bych povesil detekci tlacitka na interrupt, tim se zdetejuje hned pri stiknuti (a zase ho muzes pustit), ale i tak si pockas na ukonceni stavajiciho prenosu. Pokud se ti generuje obrazovka opakovanym prekreslovanim, da se to obslouzit mezi dvojim volanim toho prekresleni a pak v pripade nutnosti zresetovat obrazovku a zacit ji generovat od zacatku (rychlejsi nez cekat na dokresleni a vygenerovat pak novou), ale to uz chce trochu videt do toho, co a jak ta knihovna dela.

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: pomalé Arduino NANO

Příspěvek od jankop » 27 bře 2018, 08:09

gilhad píše:
26 bře 2018, 23:53
Graficke knihovny se na Arduinu potykaji s nedostatkem pameti
Nepochybně máš pravdu. Můj výkřik měl ale znamenat především tohle:"Může to být čimkoliv, ptát se na řešení problému bez toho, že přiložíš kód, je o ničem."

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: pomalé Arduino NANO

Příspěvek od gilhad » 27 bře 2018, 10:17

Jo, ale nektere veci uvedl - pomala graficka knihovna, problemy se ctenim tlacitka nez se OLED prekresli - a to jsou zrovna veci, co to muzou dost ovlivnit. Pokud se zameri zrovna na tyto dve (treba na chvili grafiku nahradi vystupem na seriak a tlacitka bude cist na pozadi, mozna zjisti, ze to je rychle dost a tudiz hlavni a jediny problem, co mu zustane je ta grafika (a otazka, zda ji doopravdy potrebuje a nakolik)...

Nebo tohle udela a bude to pomale naprosto stejne a tudiz bude muset hledat jinde. (Ale divil bych se, kdyby to tyhle dve veci neovlivnovaly, cili spis zjisti, ze se to treba 2x zrychlilo, ale furt je to jeste pomale a pak ma ceny zacit hledat dalsi prikazy, co zpomaleni zpusobuji.)

Cili sance, ze tytop dve veci, ktere jmenoval, se na tom podepisuji podstatnym zpusobem je znacna a ma cenu mu poradit, at se s nima nejdriv vyporada a teprve pokud to nebude stacit, tak zacne byt zajimavy ten kod, co tam ma. (Stejne jako kdyz si nekdo postezuje, ze se mu rozbilo auto, protoze nejede, ma splaskle pneumatiky a prazdnou nadrz, tak nejdriv doporucim vymenit ty kola a dolit trochu benzinu a kdyz se to nerozjede ani pak, tak se teprve pak zacnu zajimat o nejakou diagnostiku, mozne dalsi chyby a typ auta. Ale je znacna sance, ze pokud vyresi tyto dve veci, tak uz to v pohode pojede. Nebo ne a pak ma teprv smysl resit, ze uvedl malo detailu)

Velikost programu sama o sobe s rychlosti prilis nesouvisi - i program zabirajici flash do posledniho byte muze byt velmi rychly a responzivni, stejne jako na par radku napisu obludu pomalou a neobratnou a bude mi na to stacit par procent pameti.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti