www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer vorladen funktioniert nicht zur Laufzeit


Autor: Markus Becker (mbecker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein Programm geschrieben dass das Digitalsignal eines 
speziellen Ölsensors zur Wartungsintervalverlängerung bei PKWs ausgibt.

Die "Grundperiode" mache ich per Timer - Interrupt. Um diese Zeit 
anpassen zu könne, lade ich den Timer-Counter in der ISR vor (hier liegt 
das Problem).

Die einzelnen Zeitkonstanten kann ich per Poti & ADC verändern. Bei der 
"Temperaturzeit" funktioniert das ganze (diese wird per _delay_ms (ms) 
erzeugt).

Die Grundperiode (Coolzeit / t_cool) ändert sich aber nicht. Ändere ich 
die Grenzen (MIN_COOL, MAX_COOL) dann verändert sich auch die 
Periodendauer. Gebe sie direkt im Code (z.B. mittels set_timer (700);) 
fest an, passt die Periodenzeit (Oszi).

Es liegt auch nicht am Poti, habe die Verwendung der zwei Potis schon 
getauscht (also Zuordung Poti1/2 auf t_temp und t_cool) und damit wie 
zuvor t_temp verändert.

Deshalb stellt sich für mich die Frage, ob das Vorladen vllt. nur mit 
Konstanten geht. Im Manual sowie Suchefunktion finde ich aber nix.

Vielen Dank im Voraus.

Gruß,
Markus

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timer Nachladen macht man beim AVR nicht! Das ist Murks, dafür gibt es 
den CTC-Modus. Siehe AVR-GCC-Tutorial, genauer hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: Markus Becker (mbecker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die schnelle Antwort!!! Werde ich gleich umsetzen / 
probieren.

Autor: Markus Becker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

hab es jetzt mal umgeschrieben, allerdings wird im CTC-Mode kein 
Output-Compare-Match-Interrupt geschmissen.

Wer weiß weiter?

Autor: Markus Becker (mbecker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Upps, Anhang vergessen.

EDIT: Erledigt

Autor: Markus Becker (mbecker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

der Timer-Compare-Interrupt tut jetzt so wie er soll. Ich habe auch die 
Funktion set_timer (ushort time) angepasst. Allerdings verändert sich 
(trotz veränderung des Compare-Registers) die Periodendauer nicht.

Ich bin am verzweifeln. Bitte um Hilfe.

Autor: Markus Becker (mbecker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: Erledigt. Hatte noch nen kleinen Fehler drin.

SORRY für die vielen Posts.

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.