Timer2 Interrupt mit 16F917 zu groß
Montag, 21. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  CCS Compiler  |  Timer (CCS)  |  Timer2 Interrupt mit 16F917 zu groß « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Timer2 Interrupt mit 16F917 zu groß  (Gelesen 1790 mal)
 
M.H
Gast
« am: September 21, 2008, 11:51:23 »

Morgen,

ich habe das Problem das ich eine PWM mit einem Timer generrieren will. Nur leider ist der PWM ausgang schon von einer anderen Funktion belegt. Daher soll der Timer2 einen Interrupt generrieren und einen Pin schalten. Der Overflow soll alle 10 µS erfolgen. Ich verwende einen Quar von 7,328 MHZ.
Das Problem ist der Interrupt Vector benötig ca. 33µS. Das heist auch bei einem Overflow von 10µS bekomme ich nur alle 33µS einen Änderung am Pin.

Hat jemand eine Idee wie ich die Abarbeitung des Interrutvector beschleunigen kann?
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #1 am: September 22, 2008, 22:57:58 »

Zitat
Hat jemand eine Idee wie ich die Abarbeitung des Interrutvector beschleunigen kann?

Abgesehen davon, daß ohne den konkreten Code der ISR diese Frage nicht zu beantworten ist: Ein PIC16 @ 7,3728MHz ist prinzipiell nicht dafür geeignet, Interrupts im 10µs-Intervall zu verarbeiten. Zwischen den Interrupts stehen nur 18,432 Befehlszyklen zur Verfügung. Die minimale Interrupt-Sicherung und Wiederherstellung (ohne PCLATH) benötigt alleine 8 Befehlszyklen. Zusammen mit der Interrupt-Latenz (zwei Befehlszyklen beim synchronen Interrupt, sonst 2 bis 3) und dem Rücksprung aus dem Interrupt (ebenfalls zwei Befehlszyklen) bleiben für den eigentlichen Interrupt Code nur noch 5-6 Befehlszyklen übrig. Auch mit dem bestmöglichen Assembler-Code ist eine sinnvolle Anwendung unter diesen Umständen praktisch unmöglich. Selbst wenn es gelingen sollte, die ISR in 6 oder weniger Befehlen zu erledigen, bleibt für das Hauptprogramm im Endeffekt keine Zeit mehr für dessen Abarbeitung.

Ohne die Interrupt-Häufigkeit zu verringern (d.h. die Auflösung der PWM zu reduzieren) und die Taktfrequenz des PICs deutlich zu erhöhen, sehe ich in Deinem Anwendungsszenario überhaupt keine Aussicht auf Erfolg.


Viele Grüße

Bernd
Gespeichert

Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.061 Sekunden mit 20 Zugriffen.
 
Top! Top!