Pic 18F46J50 exp() beinflusst timer

Gast #1699811
Lesenswert?
• ▲
▼
Hallo Zusammen,

Folgendes Problem:

- Task Betriebssystem alle 10ms, Timer0-gesteuert.

- Timer3 löst mittels Überlauf alle 300µs ein Interrupt aus.

Im Interrupt timer3 wird nur ein Pin-Zustand abgefragt.

Aktiviere ich nun in der 10ms task eine

exp() Funktion aus math.h

wird der timer3 nicht mehr alle 300µs ausgelöst, sondern

minimal nur noch ca. alle 350µs.

Die e-funktion wird noch nicht einmal ausgeführt sondern
nur mit-compiliert (andere Vorbedingung fehlt)

(selbe habe ich mit timer0 getestet, gleiches Verhalten)

Woran kann das liegen? Stack Falsch eingestellt?
Dauert restore nach Interrupt so lange? (float werte).


Compiler mcc18.exe von microchip free version 3.22
(Firma: Promaxx.net) #1699828
Lesenswert?
• ▲
▼
Ich befürchte, Du spielst mit dem Gedanken, innerhalb der 
Interrupt-Routine eine EXP-Funktion einzusetzen.

6 - setzen !

Das kann das langsame zeitunkritische Hauptprogramm machen. Die 
INT-Routinen müssen fix verlassen werden um Platz für andere zu 
schaffen!
Die INT-Routine kann ein Flag setzen, das das Hauptprogramm abfragt und 
dann die Berechnungen anstellt...
Gast #1699987
Lesenswert?
• ▲
▼
Danke für die Antwort.

Die exp() läuft in der 10ms Task die ausserhalb der Interruptvektoren
liegt.

Wie gesagt ich compiliere die Funktion nur mit. Innerhalb der Task
wird diese nicht ausgeführt da Sie innerhalb einer if() Abfrage liegt.

Das Ergebnis ist halt das der Interrupt scheinbar später ausslöst als 
wenn ich die Funktion nicht mit compiliere.

Gruß Dirk

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.