PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timer ATTiny - keine Funktion?



dl1akp
19.02.2010, 09:26
Hallo Leute,

kann mir mal einer sagen, warum das nicht geht?
Hat absolut keine Funktion....
Bin ratlos. Es soll letztendlich der Buzzer einen Ton erzeugen.

Habe auch Tiny schon gewechselt, Proggen geht, aber null Funktion


$regfile = "attiny13.dat" ' Chip auswählen
$crystal = 1200000 '9,6MHz /8
$hwstack = 8
$swstack = 2
$framesize = 5
'
'

Ddrb = &B11111001
Buzzer Alias Portb.5

Dim S As Byte
Const Timervorgabe = 130

Config Timer0 = Timer , Prescale = 1024
On Timer0 Timer_irq


Enable Timer0
Enable Interrupts


Do

Loop




Timer_irq:
'Interrupt jede Sekunde
Timer0 = Timervorgabe
Incr S
Toggle Buzzer
Return



Stimmt da irgendwas nicht?
Strom ziehen tut der Tiny - 3mA.

MfG, und danke
dl1akp

dl1akp
19.02.2010, 09:50
Hallo,

habs jetzt geändert, nachdem ich gesehen habe, das PB5 so ohne weiteres nicht verwendbar ist.
Habe jetzt PB3, es geht zwar, aber VIEEELLLL zu langsam


$regfile = "attiny13.dat" ' Chip auswählen
$crystal = 9600000 '9,6MHz
$hwstack = 8
$swstack = 2
$framesize = 5
'
'

Ddrb = &B11111001
Buzzer Alias Portb.3

Dim S As Byte
Const Timervorgabe = 130

Config Timer0 = Timer , Prescale = 1
On Timer0 Timer_irq


Enable Timer0
Enable Interrupts


Do

Loop




Timer_irq:
'Interrupt jede Sekunde
Timer0 = Timervorgabe
Incr S
Toggle Buzzer
Return



Es togglet so etwa mit 5 Hz.
Das kann doch nicht sein, bei 9,6MHz, ohne Vorteiler (Fusebits entspr. gesetzt) ????

Ich verzweifel noch....
Wie ihr an meinen Beiträgen seht, habe ich schon mehrfach versucht kleine Projekte mit Tiny13 zu lösen - es ging noch NIE!!

10 Stk habe ich rumliegen, etwa 5mal wollte ich was damit machen - nichts ging... Echt frustrierend.

Ich werde die Dinger am besten in der Tonne versenken..

Hat keiner ne Idee?
Ursprünglich will ich einen Timer mit 60sek und 90sek bauen, je nachedem welche der zwei Tasten mann drückt...

MfG, dl1akp

Sauerbruch
19.02.2010, 11:16
Ich verzweifel noch....

...kann ich irgendwie verstehen :-)

Bei einem Preload von 130 und 5 Interrupts pro Sekunde dürfte der Timer mit gerade mal etwas über 600 Hz getaktet werden - und das lässt sich ja wirklich nicht so ohne weiteres erklären (noch nichtmal mit dem beliebten CKDIV8-Fusebit).

Hast Du mal den wait 1 - Test gemacht (LED alle 1 Sek. toggeln, ohne Timer und so)?

73,

Daniel

dl1akp
19.02.2010, 16:03
Hallo Daniel,

wait-Test noch nich gemacht. Werd ich mal machen.
Mir ist ne Idee gekommen: Habe an dem PB3 einen Buzzer dran. Vielleicht zieht der zu viel Strom....

...aber das kann doch eigentlich nicht die Ursache sein...
Teste ich auch morgen. Heut keine Zeit mehr.
Melde mich dann nochmal, was bei rum kam.

MfG, dl1akp