Switch to full style
Dneska se procesory objevují všude, pokud máte nějaký nápad, či udělát, tak se neváhejte pochlubit.
Odeslat odpověď

Re: Arduino s seriova linka cez prerusenie

stř 05.09.2018 8:14

Anebo ještě jedna myšlenka: https://www.arduino.cc/en/Serial/Flush
ta funkce čeká na okamžik, kdy bude TX buffer prázdnej..

Re: Arduino s seriova linka cez prerusenie

stř 05.09.2018 8:17

ddano007 píše:Timer1 a delay: mne sa práve kdesi marí, že systém by mal používať Timer0, ak používa Timer1, to by som radšej prekopal to prerušenie na niečo, čo systém nepoužíva.
V assembleri si človek všetko naprogramoval sám, ergo som vedel, čo mi kde beží, v Arduine akosi neviem, čo beží kde v systéme


1/ delay a casovanie (realny cas systemu) bezi defaultovo na timer 0 ale da sa to zmenit, ale to si asi nerobil, takze je to 99% timer 0 . Timer 1 sa pouziva napriklad v "servo" objekte a podobnych veciach. Delaye sa tam nepouzivaju prave preto ze

2/ presne ako hovoris nikdy nevies co ti bezi na pozadi v Arduino systeme. Robi to tam dost divne veci aj u niektorych velmi jednoduchych operacii. Treba si uvedomit ze to k comu mas pristup je len nejaky front end systemu ktory ti bezi na pozadi, Vsetky prerusenia bezia k nemu az porom k tebe a navyse to vzdy zalezi aky je to procesor (je to konfigurovatelne pre rozne procesory). Pokial chces mat 100% istotu tak bud ten asembler, alebo nejaky kompilator kde to mas 100% vo svojich rukach, alebo nastudovat co to arduino na tvojom procesore naozaj robi a prisposobit sa tomu.

V tvojom pripade je to prerusenie obsluhovane potencionalne hodne dlho, vysoko pravdepodobne tam bude kolizia medzi preruseniami. Citat retazec vovnutri prerusenia, to by som nerobil ani nahodou, tam sa urobi par jednoduchych operacii a vypadne sa.

Re: Arduino s seriova linka cez prerusenie

stř 05.09.2018 8:39

JirkaA píše:...Klidně v hlavní smyčce naprosto asynchronně, ono bude jedno jestli ho shodíš o trochu později...

To práve nejde: v hlavnej slučke je obsluha displeja, ktorá trvá nikedy rádovo sekundy. Ja ten budič musím zhodiť tak do 400us najviac...

Re: Arduino s seriova linka cez prerusenie

stř 05.09.2018 14:14

ddano007 píše:To práve nejde: v hlavnej slučke je obsluha displeja, ktorá trvá nikedy rádovo sekundy. Ja ten budič musím zhodiť tak do 400us najviac...

Tak co takhle interrupt od časovače jednou třeba za 100us, v něm přečíst flag TX bufferu a když je prázdný, shodit budič??

Re: Arduino s seriova linka cez prerusenie

stř 05.09.2018 15:04

No, keďže mám preddeličku na 4us, tak som prekopal Timer1 na 88us ( jeden Byte pri 115 200 Baud trva 87us ), tak sa to jednoduchšie počíta. Zlá správa je, že to nepomohlo... asi to rozdupem :mrgreen:
Ale ešte predtým zopár vecí vyskúšam...
Začínam mať podozrenie, či mi do toho nebabre Ucglib, tá kreslí cez SPI na displej, aj keď SPI má vlastný časovač...
Odeslat odpověď