mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bascom-AVR Timer


Autor: LinkinPark (Gast)
Datum:

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

Autor: ThomasB (Gast)
Datum:

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

Autor: LinkinPark (Gast)
Datum:

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

Autor: LinkinPark (Gast)
Datum:

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

Autor: ThomasB (Gast)
Datum:

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


MfG ThomasB

Autor: LinkinPark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann ?

Autor: LinkinPark (Gast)
Datum:

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

Autor: P.Wilbert (Gast)
Datum:

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

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.