Forum: Mikrocontroller und Digitale Elektronik BASCOM Timer1 mit ATTiny45 --PROBLEM--


von Scorpion_XIII (Gast)


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

von Paul Baumann (Gast)


Lesenswert?

Gib mal nach der "Crystal" - Direktive in der nächsten Zeile
"$Tiny" ein. Manche Sachen funktionieren auf den kleinen Kerlchen
sonst nicht.

MfG Paul

von Scorpion_XIII (Gast)


Lesenswert?

Hi,

das funktioniert leider nicht, da die Fehlermedlung "LCD not possible 
with Tiny Chip" kommt von Bascom

von Anonymous (Gast)


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

von Scorpion_XIII (Gast)


Lesenswert?

:)))))))
Thanks! That's working

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.