ATMega32 - Timer ändern

Gast #1765457
Lesenswert?
• ▲
▼
Hallo zusammen,

ich verwende den BASCOM-Compiler und möchte gern eine LED mit 
verschiedenen Frequenzen blinken lassen. Dazu nutze ich den 16Bit-Timer 
TIMER1.

Folgener Code bewirkt aber keine Änderung der Blinkfrequenz:
1
$regfile = "m32def.dat"
2
$crystal = 16000000
3

4
Led1 Alias Portd.5
5
Taste3port Alias Portd.4
6
Taste3 Alias Pind.4
7

8
Config Taste3 = Input
9
Config Led1 = Output
10
Config Timer1 = Timer , Prescale = 256
11

12
Dim Tm As Long
13

14
On Timer1 Timerroutine
15

16
Enable Timer1
17
Start Timer1
18

19
Tm = 59285
20

21
Enable Interrupts
22

23

24
Do
25
   
26
  Debounce Taste3 , 0 , Set_freq , Sub
27

28
Loop
29

30

31
Timerroutine:
32

33

34
If Led1 = 0 Then
35
   Led1 = 1
36
   Timer1 = Tm
37
   Return
38
End If
39

40
If Led1 = 1 Then
41
   Led1 = 0
42
   Timer1 = Tm
43
   Return
44
End If
45

46
Return
47

48

49
Set_freq:
50

51
Tm = 3035
52

53
Return
54
End

Anfangs blinkt die LED mit 10Hz, wie über Variable 'Tm' in TIMER1 
eingestellt.
Bei einem Druck auf 'Taste3' ruft die Hauptschleife die Subroutine 
'Set_freq' auf, und ändert den Wert von 'Tm' auf 3035, was einer Sekunde 
entspricht. Leider ändert sich die Blinkfrequenz nicht.

Welchen Fehler mache ich hier?

Gruß,
Matthias

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.