mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC Timer-Problem


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Programm, welches Timergesteuert Aufgaben ausführt. Diese 
Aufgaben haben höchste Priorität. (Timer1)
Nun kommt eine weiter Aufgabe hinzu, für die ich einen eigenen Timer 
brauche. (Timer 2) Im Wesentlichen werden zwei Portpins ein-/und 
ausgeschaltet. Die Gegenstelle registriert die Flankenwechsel.
Timer2 habe ich eine geringere Priorität eingeräumt.

Meine Idee war, dass, wenn Timer1 den Timer2 unterbricht, mir das egal 
ist, da dann die zwei von Timer2 gesteuerten Portpins in der 
Zwischenzeit ihren Wert (High oder Low) halten. Wenn die 
Timer1-Interruptroutine fertig ist, kann der Timer2Interrupt 
weiterarbeiten.

Nun funktioniert das leider so doch nicht. Ich würde nun eigentlich nur 
gern wissen, ob was an meiner Herangehensweise falsch ist.
Kann man einen Timerinterrupt von einem anderen Timer unterbrechen 
lassen?
Wenn ja, was muß man beachten?

Gruß
Klaus

Autor: Al (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was für ein PIC ist es überhaupt?

Wie schnell ist das ganze?

Wenn nicht so schnell, kannst den Timer1 so skalieren (e.g. 100us) dass 
er für beide Aufgaben reicht, dann einfach die Zeiten in der ISR prüfen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> Nun funktioniert das leider so doch nicht.

Was funktioniert denn nicht?


> Kann man einen Timerinterrupt von einem anderen Timer unterbrechen
> lassen?

Ja, dazu sind die unterschiedlichen Prioritätsstufen da.
Du hast sie auch entsprechend zugewiesen?


Peter

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten. Ich hab die Prioritäten natürlich 
zugewiesen. Es ist ein PIC24F.
Wie auch immer, die Antworten reichen mir eigentlich schon. Ich wollte 
nur wissen, ob ich einen Fehler im Programmcode habe, oder ob's generell 
am PIC liegt, da ich mit sich überschneidenden Timerinterrupts noch 
nichts zu tun hatte.

Gruß
Klaus

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.