mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Control Pro Timer-Interrupt Frage


Autor: Bosch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin dabei eine Zeit (mit auftretenden Aktionen) zu messen und 
verwende dafür das C-Control Pro Mega128 Board von Conrad.
Die Zeitmessung ist eine wiederkehrende Aufgabe mit kleinen pausen 
dazwischen.
Da leider für meine Meßaufgabe ein 16 Bit Timer nicht ausreicht verwende 
ich die ISR des Timers in der ich eine Variable inkrementiere und somit 
ausreichten lange messen kann.
Jedoch nach verlassen steht der Timerwert immer noch auf 65536 und ich 
weiss nciht wie zurücksetzen.
Oder aber die Ausgabe im Debugfenster ist falsch und somit ist ein 
umrechechnen in einen Zeitwert auch unmöglich.
Messe ich jedoch nur kürzere Zeiten wobei der 16 Bit Timer ausreicht und 
nicht in die ISR gelangt setzt er sich immer wieder auf Null und fängt 
wie gewünscht von vorne an.
Wie kann ich es nun anstellen den Timer quasi in der ISR 
zurüchzusetzten?

Danke!

Grüsse Bosch

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dein Programm nicht herzeigst
wird dir auch niemand sagen können, was daran nicht stimmt.

Autor: Bosch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

Wenn diese Fall aufgetreten ist mit ISR und das Debugfenster bei jeder 
darauffolgenden Messung bis zu einem Neustart des Controllers die 65536 
(Timerwert) ausgibt, dann passiert folgendes:

Bei einer Messung die innerhalb der 16 Bit liegt und nicht die ISR 
aufgerufen wird bleibt die Variable logisch Null(richtig) und der 
Timerwert 65536(falsch), doch wenn die ISR aufgerufen wird usw. dann 
kommt am Ende ein e (je nachdem wie oft die ISR aufgerufen)eins in der 
Variable heraus.
Also muss der Controller doch irgendwas Zählen aber stellt es nicht dar.

Autor: Bosch (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kein Problem.
Also wie im Code ersichtlich läuft der Timer  mit einer ADC-Wandlung 
zusammein solange ein Signal (Port_ReadBit(36)) auf low ist.
Wenn es zurückspringt sollen die gemessenen Zeitwerte im Debugfenster 
angezeigt werden.

Kannst du mir mit der Timergeschichte helfen?

Danke!

MfG

Bosch

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.