Hi,
hier ein kleines Testprogramm
Der Tiny45 läuft mit 128khz Taktrate, die vorher geteilt wird. (Ich
möchte 8khz erreichen). Normalerweise entspricht 128khz/16 =8khz,
allerdings ist mit dem Programm (unten) dann die Toggle rate doppelt so
lang wie gewünscht. Habe ich mich bei dem Timer verrechnet, oder habe
ich im Datenblatt was überlesen?
1 | $regfile = "attiny45.dat "
|
2 | $crystal = 8000
|
3 |
|
4 | Config Clockdiv = 8
|
5 |
|
6 | $regfile = "attiny45.dat "
|
7 | $crystal = 8000
|
8 |
|
9 | Config Clockdiv = 8
|
10 |
|
11 |
|
12 | 'timer1, 8khz clock -> prescale 64 -> 125 -> 1second preload 131
|
13 | Config Timer0 = Timer , Prescale = 64
|
14 | On Timer0 Speedpulse_check
|
15 | Const Timer0_preload = 131
|
16 |
|
17 | Config Portb.3 = Output
|
18 |
|
19 | Timer0 = Timer0_preload
|
20 |
|
21 | Enable Interrupts
|
22 | Enable Timer0
|
23 |
|
24 | Do
|
25 |
|
26 |
|
27 | Loop
|
28 |
|
29 | End
|
30 |
|
31 | Speedpulse_check:
|
32 | Timer0 = Timer0_preload
|
33 | Toggle Portb.3
|
34 |
|
35 | Return
|