www.mikrocontroller.net

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


Autor: Scorpion_XIII (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
'--Einstellungen für den uC--
$regfile = "ATTiny45.dat"
$crystal = 1000000
$hwstack = 32
$swstack = 10
$framesize = 40

Config Timer1 = Timer , Prescale = 64
Enable Timer1
On Timer1 Readrctime:
Enable Interrupts

Config Portb.3 = Output                                     'LED
Led1 Alias Portb.3

Led1=0
Do 
Loop

'ISR
Readrctime:   
 Led1=1
Return

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.
Config Portb.0 = Output
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 5 , Timer = Timer1
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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Scorpion_XIII (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Autor: Anonymous (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Try the code below.
$regfile = "ATTiny45.dat"
$crystal = 1000000 '1MHz

$hwstack = 32
$swstack = 16
$framesize = 40

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

On Timer1 Readrctime
Enable Timer1

Config PINb.3 = Output  'LED
Led1 Alias Portb.3

Enable Interrupts

Do
   !NOP
Loop

End

'ISR
Readrctime:
   Toggle Led1
Return

Autor: Scorpion_XIII (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:)))))))
Thanks! That's working

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.