Forum: Mikrocontroller und Digitale Elektronik Bascom-AVR Timer


von LinkinPark (Gast)


Lesenswert?

Hallo,

Ich hab leider keine Ahnung wie ich in Bascom einen Timer programmieren
kann der bspw. jede Sekunde einen bestimmten Befehl ausführt.
Das einzige was ich bisher mache ist:

Enable Timer1
Config Timer1 = Timer , Prescale = 256

Stimmt das soweit oder was muss ich machen ?

von ThomasB (Gast)


Lesenswert?

Hallo LinkinPark:
Wie man den Timer benutzt,steht in der online-hilfe des Compilers;-)
 Z.B bei 1Mhz Takt:
hier ein einfaches kleines Testprogramm,funktion:zählt bis 255,und
zeigt den zustand an den leds an.

  Ddrb = 255 : Portb = 255
  Dim Count As Byte
  Config Timer1 = Timer , Prescale = 1024
  On Timer1 Counting 'bei Interrupt zur ISR "Counting"
  Enable Timer1
  Enable Interrupts 'aktiv.des Timer1 Interrupts
  Do
  ' macht nix,oder hier kann auch ein anderes PRG.liegen
  Loop
  'das nachfolgene Prg. wird jede Sekunde ausgeführt
  Counting:
  Incr Count
  Portb = Count
  Return 'und zurück aus dem Interrupt
das PRG kann man im Simu testen (Im Bascom Simulator)

MfG Thomas Bader

von LinkinPark (Gast)


Lesenswert?

Keine Ahnung woran das liegt aber bei mir passiert da gar nichst. Ich ha
 die Zeile:
Portb = Count
durch
Print Count
ersetzt.
Dadurch müsste doch eigentlich jede Sekunde was an den PC geschickt
werden. Kann es eventuell sein dass ich irgenwelche Fusebits falsch
gesetzt habe, da ich damit kürzlich etwas herumgespielt habe ?

von LinkinPark (Gast)


Lesenswert?

Hab den Code mal mit nem 4433 getestet und siehe da er funktioniert.
Lieder funktioniert beim Mega8 immer noch nix. Woran kann das liegen ?

von ThomasB (Gast)


Lesenswert?

Hallo LinkinPark :
kann ich so nicht sagen,warum,weshalb ?
kann an den Fusebits liegen.


MfG ThomasB

von LinkinPark (Gast)


Lesenswert?

kann ?

von LinkinPark (Gast)


Lesenswert?

Es scheint als würde der Timer schon hochzählen wie er das soll nur löst
der Interrupr nicht uas wenn er überläuft. Woran kann das liegen ?

von P.Wilbert (Gast)


Lesenswert?

ich benutze eine atmega32. wenn man in einer isr einen funktions-aufruf
macht ( oder sub ), funktioniert die isr nicht mehr !!
eigenartige sache ( stack-probleme ??? ). man müsste sich mal mit mcs
electronics in verbindung setzen!
gruß peter

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.