timer

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
sonikmartin
Pokročilý člen
Pokročilý člen
Príspevky: 554
Dátum registrácie: 05 Nov 2010, 00:00
Bydlisko: Litomyšl
Vek: 36
Kontaktovať používateľa:

timer

Príspevok od používateľa sonikmartin » 09 Aug 2013, 18:40

Ahoj panove. V jine diskuzi jsem polozil dotaz jak naprogranmovat timer aby měl přesnost cca 1ms a dal se pouzit pro stopky.

děkuji
0

Používateľov profilový obrázok
petersno
Ultimate člen
Ultimate člen
Príspevky: 2774
Dátum registrácie: 06 Aug 2011, 00:00
Bydlisko: ba
Vek: 63

Re: timer

Príspevok od používateľa petersno » 09 Aug 2013, 18:49

v bascome ti nepomozem, v Ccku mozem spachat nejaky priklad, ak chces
0

smotek7
Pokročilý člen
Pokročilý člen
Príspevky: 528
Dátum registrácie: 08 Aug 2011, 00:00
Bydlisko: PN
Vek: 44

Re: timer

Príspevok od používateľa smotek7 » 09 Aug 2013, 20:39

Ma tu jeden priklad, mera to rychlost vystrelu, mozno ti to pomoze.
Prílohy
stopky.zip
(2.27 KiB) 104 stiahnutí
0
Nemusím vedeť váhu elektrónu ak chcem zaspájkovať tranzistor.

Používateľov profilový obrázok
sonikmartin
Pokročilý člen
Pokročilý člen
Príspevky: 554
Dátum registrácie: 05 Nov 2010, 00:00
Bydlisko: Litomyšl
Vek: 36
Kontaktovať používateľa:

Re: timer

Príspevok od používateľa sonikmartin » 16 Aug 2013, 12:43

Tak tohle vypada zajimave, ale jeste kdyby mi nekdo poradil s timerem s COMPARE funkci.

dekuji
0

Dali2
Pokročilý člen
Pokročilý člen
Príspevky: 840
Dátum registrácie: 01 Sep 2008, 00:00
Bydlisko: Beniakovce
Vek: 56

Re: timer

Príspevok od používateľa Dali2 » 16 Aug 2013, 14:56

Skus troska viac priblizit, co mas v umysle a hlavne aka rodina procesorov, inak funguju timery pre AVR a inak pre 8051.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: timer

Príspevok od používateľa peterple » 17 Aug 2013, 14:07

Vezmime takú ATmega8. Na rozumné počítanie času sa dá ako časová základňa využiť TIMER1 v móde CTC (Clear Timer on Compare). Sú možné dva módy 4 a 12. Tie sa volia pomocou WGM1[3:0]. Tak napríklad 4 mód pre 16Mhz kryštál. Compare hodnutu nastavíš na 16000. To znamená, že ťa časovač preruší každú milisekundu. Odtiaľ si už vieš odrátať čo je treba (stotiny, desatiny, sekundy ....).
Takže čo treba nastaviť:
1. OCR1A na 16000. Sú to dva registre ale kompilátor to určite hravo zvládne.
2. TCCR1B treba nastaviť na hodnotu (1 << WGM12) | (1 << CS10). Napísal som to Cckovo, na Bascom si to nejako prerob sám, je to číslo 9. To urobí CTC mód 4 a predelič nastaví na 1 - teda počítanie priamo hodín z oscilátora.
3. TIMSK = (1 << OCIE1A) toto povolí prerušenie od Compare Match.
4. A samozrejme si treba napísať krátku prerušovaciu rutinku na počítanie tisícin, stotín .... a všetko ostatné napr zobrazovanie riešiť v hlavnom programe. Ako sa to robí v Bascom zase neviem. A ani sa mi to nechce študovať. Čo som na to hodil oko tak je to pomerne jednoduché.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Napísať odpoveď