 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
MCAT Član


Pridružen-a: Ned 18 Nov 2007 22:06 Prispevkov: 306 Aktiv.: 1.43 Kraj: Moravče (JN76JD)
|
Objavljeno: Pet Apr 30, 2010 2:37 am Naslov sporočila: ATTiny13 Timer |
|
|
Ali se lahko timer v ATTiny13 uporabi na tak način in ne za PWM:
Koda: |
$regfile = "attiny13.dat"
$crystal = 9600000
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.0 = Output
Config Portb.1 = Input
Config Portb.2 = Input
Config Timer0 = Timer , Prescale = 1
On Ovf0 Tim0_isr
Enable Timer0
Enable Interrupts
...
Tim0_isr:
If nekaj= 1 Then Disable Timer0
Incr Clock12
If Clock12 > 29411 Then
Clock12 = 0
....... 'stori nekaj
End If
Return
End |
_________________ Gregor, S53SL
Think out of . |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pet Apr 30, 2010 6:38 am Naslov sporočila: |
|
|
Načeloma ja.
Seveda je potrebno spremenljivko Clock12 primerno definirati, da bo lahko preštela do 29411.
In v glavnem programu mora biti zanka, ki si jo verjetno zamišljaš kot ... izza Enable Interrupts.
Osebno rajši kaka izvajanja (' stori nekj) izvajam v zanki glavnega programa, na osnovi zastavice (flag, bit spremenljivke) ki jo postavi timer prekinitveni podprogram.
Prekinitveni podprogrami naj bodo v principu silno kratki, kar se tiče izvajanja.
Morda tako:
Koda: |
$regfile = "attiny13.dat"
$crystal = 9600000
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.0 = Output
Config Portb.1 = Input
Config Portb.2 = Input
Config Timer0 = Timer , Prescale = 1
On Ovf0 Tim0_isr
Enable Timer0
Enable Interrupts
dim timerbit as bit
' neskončna zanka glavnega programa:
do
if timerbit = 1 then
reset timerbit
.. ' stori nekaj
endif
...
Loop
Tim0_isr:
' If nekaj= 1 Then Disable Timer0 zakaj si tuka dal disable?
Incr Clock12
If Clock12 > 29411 Then
Clock12 = 0
set timerbit
End If
Return
End
|
Poleg tega rad sam določam, koliko čez koliko časa naj pride sledeča prekinitev z
load timer ukazom
Prijazen pripomoček za postavljanje timer-a je timer.exe, ki ti ga v prilogi pošiljam
Opis: |
|
 Download |
Ime datoteke: |
timer.zip |
Velikost datoteke: |
10.16 KB |
Downloadano: |
13 krat |
|
|
Nazaj na vrh |
|
 |
MCAT Član


Pridružen-a: Ned 18 Nov 2007 22:06 Prispevkov: 306 Aktiv.: 1.43 Kraj: Moravče (JN76JD)
|
Objavljeno: Pet Apr 30, 2010 10:17 am Naslov sporočila: |
|
|
Hvala za odgovor in program. Bom upošteval tvoj nasvet in premaknil odvečno kodo iz timerja v glavno zanko, potem pa poročam kako in kaj.
...
Dela tako kot mora, hvala.
_________________ Gregor, S53SL
Think out of . |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|