Stránka 1 z 1
Časovač s atmel AVR
Napsal: 23 říj 2013, 15:20
od daavid
Čau lidi, můžete mi někdo poradit, jak bych mohl sestavit takový časovač, aby: 40 s byl v provozu a 59 min 20 s byl nečinný (samozřejmě ne ten časovač, ale ta časované věc/relé) s Atmel AVR třeba s ATtiny13?
Ale potřeboval bych to podrobnějc, mám základní znalosti a nezhotovím to z této odpovědi: jedno malý AVR, čtyři tranzistory a nějakej napájecí adapter a máš to.
Díky moc.

Napsal: 23 říj 2013, 17:40
od monterjirka
Jak podrobně to potřebuješ vysvětlit? V podstatě je to úplně jednoduchá aplikace, na to by stačil nějaký PIC nebo "2051"...
Podle frekvence krystalu si spočítáš počet cyklů na 1 vteřinu, napíšeš program, který "nahodí" příslušný bit na portu na H a procesor se bude tak trochu flákat a jen počítat, pak schodí bit na portu na L a bude zase počítat a až to napočítá, skočí na "začátek"...
Napsal: 23 říj 2013, 17:52
od daavid
No, a jak se programuje PIC? S atmelem si poradím, ale s pic.
Napsal: 23 říj 2013, 19:24
od nekmil
Ano jeden malý AVR (Attiny2313) jeden tranzistor případně jedno relé.
$regfile = "attiny2313.dat"
$crystal = 1e6 '1MHz při vnitřním RC oscilátoru nebo změnit podle krystalu
$hwstack = 40 ' default HW stack
$swstack = 16 ' default SW stack
$framesize = 32
'konfigurace vystupu
Config Portd.2 = Output 'výstupní pin
Vystup Alias Portd.2 'výstupu přiřadíme jméno
Casovac:
Set Vystup 'nastavíme H na výstup
Wait 40 'počkáme 40 sekund
Reset Vystup 'nastavíme L na výstup
Wait 3560 'počkáme 3560 sekund
Goto Casovac

Napsal: 25 říj 2013, 09:07
od silas15
nebo můžeš použít funkci časovače timer/counter. A podle počtu přetečení vypočítat přesný čas. Např.: 1 přetečení je 6 ms * 10 je 60 ms atd. Víc o časovačích a jejich nastavení je tady:
http://maxembedded.com/category/microcontrollers-2/atmel-avr/avr-timers-atmel-avr/
Napsal: 25 říj 2013, 22:01
od frpr666
1/ u attiny13a použij timer a vygeneruj si nějakou vhodnou periodu např.1s
2/ každou 1s např. odečítej 16bit proměnnou x o jedničku (+ hlídat přetečení např. 1hod=3600s), pokud bude x<40 nahodím výstup, jinak shodím výstup.
pozn. 1/ algoritmus generování 'přesné' 1s je např. zde:
http://www.romanblack.com/one_sec.htm#ZEZJ
(je to v C, takže lze přenést např. na Atmela)
pozn. 2/ pokud ti stačí tolerance času +-5%, attiny13a má internal calibrated oscillator