www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer unter Bascom


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, kann ich unter Bascom feststellen, ob ein Timer aktiv ist oder 
nicht ?

Danke !!!

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
klar, z.B.
das gute alte LED-Blink Programm.

in die Timer ISR einfach

toggle portb.6 beispielsweise

Autor: _CH_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

>das gute alte LED-Blink Programm.
>in die Timer ISR einfach
das heißt ja, dass auch zusätzlich ein Interrupt aktiviert sein muss...

>ob ein Timer aktiv ist oder nicht ?
Ich kenne Bascom nicht, aber eine Möglichkeit wäre das "TCCRx"? 
(Timerclocksource) Register auszulesen und nachzusehen ob ein Clock 
aktiviert ist, der deinen Timer zählen lässt.
Ob es möglich ist mit Bascom an das Register ranzukommen kann ich 
allerdings nicht sagen. Evtl Inline-Assembler?

Gruß,
Christian

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte, solange der Timer aktiv ist, ganz bestimmte tasten 
sperren.......

Autor: Timo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Timer ist nach der Aktivierung(Start Timer0) immer aktiv.
D.h. nach dem er einen Überlauf hatte fängt er wieder von vorne an.
Wenn Du einen Interrupt aktiviert hast kannst den Überlauf nutzen.
Sonst kannst Du z.b timer0 als Byte-Variable nutzen
if timer0 >= 20 then portb.0 = 0
Dabei ist aber die Abfragerate zu beachten.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas wrote:
> Ich wollte, solange der Timer aktiv ist, ganz bestimmte tasten
> sperren.......

Nunja, es kommt darauf an, was Du unter "Timer" verstehst.

Da es auch Leute gibt, die in ihren Programmen die real vorhandene 
Hardware nutzen und programmieren, anstatt mit Bauklötzern zu spielen, 
denkt man beim Begriff "Timer" zuerst an einen der Hardware-Timer des 
Mikrocontrollers.

Du meinst aber vermutlich einen programmierten "Timeout", also einen in 
Software nachgebildeten "Timer", also eine Variable, die (z.B. von einem 
Hardware-Timer, der immer läuft und einige Dinge im Programm 
synchronisiert) heruntergezählt wird, solange sie noch nicht 0 ist und 
bei Erreichen von 0 eine Aktion auslösen kann. Den Zustand eines solchen 
"Timeouts" kann man "nebenher" abfragen und daraus entscheiden, ob eine 
bestimmte Handlung (z.B. Tasten abfragen) durchgeführt wird oder nicht.

Bei mir hat eigentlich jedes AVR-Programm einen Timer im Hintergrund 
laufen, in dessen Interrupt einzelne Arbeitsabläufe "synchronisiert" 
werden. Dies erhöht die Effizienz des Programms, da Warteschleifen 
(Busy-Waits, Delays) vermieden werden. Anstatt auf der Stelle zu treten 
und zu warten, kann sich der AVR anderen noch zu erledigenden Dingen 
widmen, ist halt sowas ähnliches wie Multitasking. Das geht natürlich 
nur bei hardwarenaher Programmierung, inwieweit sich vorgefertigte 
Module eines "Baukastens" in diese Phillosophie einbinden lassen, ist 
mir nicht bekannt.

...

Autor: MR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ocke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timer werden doch i.d.R. gestoppt und gestartet. Also einfach vor den 
Befehl 'Start Timer0' noch ein Flag setzen bzw. bei 'Stop Timer0' das 
Flag zurücksetzen. Dann das Abfragen der Tasten über dieses Flag 
steuern.
O.

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.