citac/casovac- otackomer
Moderátor: Moderátoři
citac/casovac- otackomer
Neviete mi poradit ako spravim otackomer pomocou C/C na Atmega.
Nema niekto neaky podobny program v jazyku C nic som na nete nenasiel. diky
Nema niekto neaky podobny program v jazyku C nic som na nete nenasiel. diky
Re: citac/casovac- otackomer
Jednoduše. Předpokládám, že to máte po stránce HW zvládnuté. Takže na nějaký vstupní pin portu budete přivádět asi pulsy z čidla otáček. Budete měřit periodu, tedy dobu mezi dvěma pulsy a z ní jako převratnou hodnotu dostanete frekvenci, potažmo otáčky.mirecc píše:Neviete mi poradit ako spravim otackomer pomocou C/C na Atmega.
Periodu můžete měřit tak, že spočítáte, kolikrát se vám podaří zavolat nějakou zpožďovací funkci mezi impulsy. Pozor, to zpoždění musí být kratší, než je doba impulsu, abyste žádný impuls nepropásl. Prostudujte si v nápovědě k avr-libc funkce v delay.h, speciálně třeba
void _delay_us (double __us)
a jejich správné použití. Jsou samozřejmě i jiné možnosti, třeba inkrementovat nějaký čítač s danou frekvencí a v přerušení od impulsů z čidla z jeho okamžité hodnoty spočíst periodu a otáčky. To vysvítit na displeji, čítač vynulovat a jede se nanovo.
Pokud by ovšem v průběhu měření měl systémek umět reagovat i na jiné události, například na povely z ovládacího panelu, je to třeba dělat trochu jinak. Musíte zpracovávat přerušení od časovače a tak na pozadí sledovat čas. Pak na "popředí" můžete reagovat jak na impulsy, tak na ovládací panel. Vede to na stavový automat.
mirecc píše:Nema niekto neaky podobny program v jazyku C nic som na nete nenasiel. diky
Nemám a ani se mi jej nechce dělat.
nieco jednoduche je tu:
http://winavr.scienceprog.com/example-a ... xcomment18
http://winavr.scienceprog.com/example-a ... xcomment18