www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Kann man beim R8C13 den "Output Compare" deaktiveren?

Autor: Speeder (Gast)
Datum: 15.10.2007 16:29

Hallo zusammen

Ich bin Anfänger und habe noch das eine oder andere Problem mit dem
R8C13 von Renesas.

Ich bin am Bau einer Zündung für einen 2-Takter
Den TimerC lasse ich immer laufen und messe die Zeit für 1 Umdrehung.
Die Drehzahl kann ich somit schon messen

Mit Output Compare will die die Zündung auslösen. Leider wird die
Procedure "OutputCompare" jedesmal ausgelöst wenn der Wert erreicht
wird.
Was leider nicht immer nögtig ist.

Wie kann man die Interruptroutine "Output Compare" von TimerC
deaktivieren?

Gruss

Speeder
Autor: Martin (Gast)
Datum: 15.10.2007 16:38

Willst du einfach den Interrupt deaktivieren? Dann setze die Priorität
der TimerC Interrupts auf 0.
Autor: Martin (Gast)
Datum: 15.10.2007 16:41

Oder du wahrscheinlich eher die Priorität des Compare-Interrupts.
Autor: Speeder (Gast)
Datum: 15.10.2007 16:55

Der TimerC sollte aber weiterlaufen da ich die Umdrehungszeit ständig
messen muss.

Wenn ich aber die Interruptpriorität auf Null setzte dann wird der Timer
ja nicht mehr laufen.

Ich probiere es mal anders zu erklären:

Für ein Umdrehung läuft der TimerC mehrfach über. Es wird also gezählt
wieviele Takte für einen Umdrehung benötigt wird.


Für den benötigten Zündzeitpunkt benötige ich aber pro Umdrehung nur
einmal eine Suslösung vom "Output Compare".

Wenn aber jedes mal wenn der Timer läuft ein "Output Compare" ausglöst
wird dann zündet es Pro Umdrehung mehrfach.

Ich weiss im Moment nicht wie ich dies möglichst "sauber" in den Griff
bekommen?


Gruss

Speeder
Autor: Martin (Gast)
Datum: 15.10.2007 17:09

Ok, also der Timer läuft mehrmals über. Du zählst ja sicherlich mit, wie
oft er überläuft. Damit erweiterst du quasi die 16 Bit des Timers um ein
paar zusätslich Bits. Die Comparefunktion kann aber nur den Timerwert
selbst vergleichen.

Muss das Timing wirklich so genau sein, oder kannst du den Timer
langsammer laufen lassen, so dass er nicht mehr über läuft.

Ansonsten :
Im TCOUT Reg kannst du den Pin deaktivieren. Dann könntest du den Pin
per Software im Compate-Interrupt setzten.

Ich muss eins sagen, mit dem R8C/13 habe ich noch nicht viel gearbeitet.
Autor: Speeder (Gast)
Datum: 15.10.2007 18:31

Hallo Martin


<Du zählst ja sicherlich mit, wie
oft er überläuft. Damit erweiterst du quasi die 16 Bit des Timers um ein
paar zusätslich Bits.>

Ja genau ich zähle den Überlauf jedesmal plus 65535.

<Muss das Timing wirklich so genau sein, oder kannst du den Timer
langsammer laufen lassen, so dass er nicht mehr über läuft.>

Soviel ich weiss kann man den TimerC nicht längsamer laufen lassen da er
keinen Prescaler hat Die anderen Timer besitzen allerdings so einen..
Auch möchte ich dies nicht da ich so eine höhere Genauigkeit habe.


<Im TCOUT Reg kannst du den Pin deaktivieren. Dann könntest du den Pin
per Software im Compate-Interrupt setzten.>

Den Pin für den "Output Compare" verwendet ich eigentlich gar nicht.
Ich verwende lediglich die Interrupt-Prodedure davon.


Gruss

Speeder
Autor: Martin (Gast)
Datum: 15.10.2007 20:23

> Den Pin für den "Output Compare" verwendet ich eigentlich gar
> nicht. Ich verwende lediglich die Interrupt-Prodedure davon.

Um so besser. Wo ist noch das Problem? Du hast einen Compare-Interrupt
und einen Zählerwert der sich aus der Anzahl der Timer C überläufe
ergibt. Da hast du doch alles was du brauchst.
Autor: Speeder (Gast)
Datum: 16.10.2007 10:16

Ich habe jetzt in der Interruptroutine für "Output Compare" eine
If-Anweisung reingehängt damit ich den Code darin nur ausführe wenn ich
will.

Aber ist dies wirklich sauber programmiert oder wäre es nicht besser den
Interrupt irgendwie zu deaktivieren?


Gruss

Speeder
Autor: Martin (Gast)
Datum: 17.10.2007 22:48

Wennst funktioniert ist es OK und sauber (in diesem Fall). Das mit
Interrupt deaktivieren das wird eine Krückerei (siehe oben).

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel





Hinweis: der Originalbeitrag ist mehr als 6 Monate alt.

webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net