Vyber tlmivky 10uH pre odrusenie AD prevodnika

Dakujem velmi pekne za dalsie rady…

No tie tlacidla cez externe odpory mi odporucil ten jeden chalan, co ma zaucal do tohto kedysi davno. Ale tak asi su fakt zvytocne…

Tie INT0 a INT1 riesim v podstate tak ako mi pises.

INT0 uplne, len na zobudenie CPU. (Tie premenne pocet som mal len aby som videl, kolko krat prebehne prerusenie)

ISR (INT0_vect) { pocet_int0++; }

A v INT1 (od pohyb. senzora, ktory nema kontakt, ale posiela napatie) som dal nastavenie na rozsvietenie LED pasu.

ISR (INT1_vect) { if (pohybovy_senzor_noc_enable == 1) { LEDpas_efekt = 9; LEDpas_zmena = 1; CPU_ON = 1; } pocet_int1++; }

Tie tlacitka riesim tiez casom, ale robim ich opacne. Ja nastavim cas (hodnota 225, co je 1 sekunda) do premennej pre dane tlacidloa v Timer0 preruseni tuto hodnotu znizujem. A tladidlo vyhodnotim len vtedy, ked je premenna rovna 0. Proste takto som si to sam vymyslel, ale ten tvoj sposob je rozhodne lepsi, lebo vies zistit aj dlzku stlacenia tlacidla, nad ktorou som uz rozmyslal, ako to vymysliet. Pokusim sa to riesit tvojim spôsobom, len to bude celkom zmena v programe.

// Tlačítko 1 - on/off if (tlacitko_1 == 0) { if (Tlacitko(1) == 0) { //zistuje, ci je stlacene tlacidlo tlacitko_1 = tlacitko_cas; //prikazy pre tlacidlo } }

Mne islo len o to, ze preco sa prerusenie vykona viac krat, aj ked sa nestlacilo tlacidlo ani nic. Ze ci netreba nejak hardverovo osetrit dane vstupy, alebo napajanie, alebo co…

No toto je tiez fajn napad, dať posielanie dát do LED pasu do Timeru, ze mi to nejak nenapadlo. Asi preto, ze som sa vzdy snazil prerusenie robit co najkratsie. Ja teraz obnovujem LED pas asi zbytocne vela krat (neviem ako stiha procesor, ale maximalne to moze byt 2 x 225 = 450-krat za dve sekundy. A asi je to uplna hovadina. Pred samotnym odoslanim dat som zakazal prerusenia od Timerov a hned po odoslani som ich opat povolil. Cize toto by som uz nemusel robit. Len musim oddelit pripravu dat od odosielania dat do LED pasu. Priprava musi bezat asi v programe a ked bude hotova, nastavimm premenu, ze su data pripravene a ked prebehne prerusenie Timeru tak ich odosle do LED pasu. Asi tak by to bolo fajn? A takto by som znizil pocet obnoveni na 200x za 2 sekundy, co by mohlo byt u v pohode :slight_smile:

Este pre predstavu, jedno odoslanie dat do LED pasu pre aktualne 138ks LED trva 165600 ns + 80ns reset bit, t.j. 0.16568 ms.