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