BASCOM Timer1 mit ATTiny45 --PROBLEM--

Gast #694952
Lesenswert?

Hallo,

langsam bin ich am verzweifeln.
Ich möchte einen Servo nach einer eingestellten Zeit betätigen.
Das Projekt ist in Bascom soweit fertig, bis auf den Timer :(
Denn genau da liegt das Problem:
ATTiny45 und Timer1 bei Bascom geht nicht mit den "einfachen" Befehlen
1
'--Einstellungen für den uC--
2
$regfile = "ATTiny45.dat"
3
$crystal = 1000000
4
$hwstack = 32
5
$swstack = 10
6
$framesize = 40
7

8
Config Timer1 = Timer , Prescale = 64
9
Enable Timer1
10
On Timer1 Readrctime:
11
Enable Interrupts
12

13
Config Portb.3 = Output                                     'LED
14
Led1 Alias Portb.3
15

16
Led1=0
17
Do 
18
Loop
19

20
'ISR
21
Readrctime:   
22
 Led1=1
23
Return
24

25
End
Mit Timer0 geht das super, aber bei Timer1 passiert auf der Hardware nix

Ich weis, man kann den Timer1 auch über seine Register ansprechen, und 
es gibt ja zig Besipiele nur irgendwie komme ich nicht dahinter wie ich 
das genau mache. Es passiert einfach nix.

Eine andere Idee war, dass man für den Servo einfach den Timer1 zuweist, 
aber da meckert Bascom beim Compilieren.
1
Config Portb.0 = Output
2
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 5 , Timer = Timer1
3
Enable Timer1
Das geht also auch nicht.

Was soll ich machen? Da ich C oder Assembler nicht kann, kann ich das 
Programm auch nicht in C übersetzten.

Es wäre super, wenn mir jemand ein funktionierenden Code geben könnte, 
der z.B. auf die Register direkt zugreift. Und in die ISR springt um 
z.B. Sekunden zu zählen.
Also Timer mit Timer1 (über Register) und Servo mit Timer0 (Standard)

Grüße
Scorpion_XIII
Gast #695024
Lesenswert?

Try the code below.
1
$regfile = "ATTiny45.dat"
2
$crystal = 1000000 '1MHz
3

4
$hwstack = 32
5
$swstack = 16
6
$framesize = 40
7

8
'''TCCR1=&H07 'This will replace Config Timer1 = Timer , Prescale = 64
9
TCCR1=&H0D 'This will replace Config Timer1 = Timer , Prescale = 4096
10
'''TCCR1=&H0F 'This will replace Config Timer1 = Timer , Prescale = 16384
11
''' See datasheet for more prescaler values
12

13
On Timer1 Readrctime
14
Enable Timer1
15

16
Config PINb.3 = Output  'LED
17
Led1 Alias Portb.3
18

19
Enable Interrupts
20

21
Do
22
   !NOP
23
Loop
24

25
End
26

27
'ISR
28
Readrctime:
29
   Toggle Led1
30
Return

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren