LPC1768: Serielle Schnittstelle aus ISR heraus ansteuern?

Gast #2664180
Hi,

bevor ich mir da seltsame Probleme einfange, frage ich doch lieber mal 
nach: angenommen es ist kein Timingproblem, weil die zu übertragenden 
Daten nur sehr wenige sind, ist es dann prinzipiell möglich, bei einem 
LPC1786 (ARM Cortex M3) aus der PWM1-Interruptroutine heraus Daten an 
eine der seriellen Schnittstellen zu schicken oder fliegt mir da was um 
die Ohren?

Danke schon mal!
(Firma: Promaxx.net) #2664564
Wozu ?

Die PWM-ISR legt die zu übertragenen Zeichen in den TX-Buffer ab, den 
die TX-ISR abarbeitet und die Zeichen Stück für Stück sendet, bis der 
TX-Buffer leer ist.

Alles nur etwas Software.

Der Code läuft immer in der uC und die angeschlossenen 
Hardware-Komponenten (SPI, UART, I2C, PWM...) arbeiten selbstständig vor 
sich hin und melden sich nur mal, wenn die Software wieder nachlegen 
muß.

Trennt das doch bitte zwischen Hauptprogramm(-Schleife), ISR und 
Hardware deutlich auf.
#2664621
TheDoug schrieb:
> Hi,
>
> bevor ich mir da seltsame Probleme einfange, frage ich doch lieber mal
> nach: angenommen es ist kein Timingproblem, weil die zu übertragenden
> Daten nur sehr wenige sind, ist es dann prinzipiell möglich, bei einem
> LPC1786 (ARM Cortex M3) aus der PWM1-Interruptroutine heraus Daten an
> eine der seriellen Schnittstellen zu schicken oder fliegt mir da was um
> die Ohren?
>
> Danke schon mal!

Vorschlag:
Wenn Du die seriellen Daten mit PWM verkoppeln moechtest, dann setze 
doch in der hoeher prioren Routine (PWM?) ein anderes INT-request Flag 
per Software fuer den UART. Sobald PWM fertig ist UND nichts anderen 
hoeher priores ansteht geht die CPU dann in den Int fuer die serielle.

Uebrigens, es kommt nicht nur auf die Menge der Daten an sondern auf die 
Haeufigkeit. Wenn also Deine PWM Routine alle 1 usec aufgerufen wird und 
die serielle nur 1 Byte uebertraegt ist das viel kritischer als wenn die 
PWM Routine alle 1 msec aufgerufen wird und Du dann 100 Bytes 
uebertraegst.
Ich hoffe das macht Sinn!

Robert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.