PIC Interrupt-Routinen in C

Gast #3162914
Hallo und einen schönen Abend an alle Leser,

nachdem ich mich nun schon eine ganze Weile mit dem CANBus und PICs 
beschäftige soll es nun an die Ausführung von Interrupts vom CAN aus 
gehen. Leider stoße ich dabei auf die verschiedensten Ausführungen und 
kann aber bisher keine sinnvoll zum Laufen bekommen. Nun die Frage an 
die Experten: Was ist nötig und gibt es tatsächlich ISRs die 
folgendermaßen aussehen:

1. void interrupt ISR() - scheint mir ein wenig eine Schmalspurlösung!

2. oder sollte es mir _asm durchgeführt werden?

3. oder gibt es sonstige Alternativen zur Programmierung in C18
Gast
Also gut Holger :)) normalerweise kommt jetzt die Antwort - kenn ich 
schon, hab' ich nicht verstanden, find' ich net - aber vielen Dank, das 
kannte ich echt noch nicht und so wie das aussieht hilft mir das auch 
echt weiter!!

Vielen Dank für die Hilfe!!
> Leider stoße ich dabei auf die verschiedensten Ausführungen und
> kann aber bisher keine sinnvoll zum Laufen bekommen.
und du möchtest jetzt eine weitere von uns in hoffnung, dass du die zum 
laufen kriegst? ...oder schenkst du uns einen glaswürfel, mit dem wir 
dein problem erörtern können? oder, was war nochmals deine frage?
bitte gern geschehen!! (ebenfalls mit zwei ausrufezeichen, dafür von 
herzen)
Gast
Hans schrieb:
> soll es nun an die Ausführung von Interrupts vom CAN aus
> gehen.


Den üblichen Hinweis auf Beispiele und Google mal beiseite, from Prinzip 
ist das megasimpel.

Da kommt n Interrupt und dein Progrämmchen springt in eine Funktion.

Das war's, wat willste noch wissen ;-) ?

Interessant ist vielleicht noch das man selber rausfinden muss wer den 
Interrupt ausgelöst hat, da halten die üblichen verdächtigen n Fähnchen 
hoch und du kannst Sie der Reihe nach abklappern.

Das macht die Sache in C Kinderleicht, eine Loop in der Interrupt 
Funktion bis alle Fähnchen unten sind. Dann ist die Funktion zu Ende und 
macht bei C dann von selbst da weiter wo Sie unterbrochen wurde (daher 
auch der Name).

n zweiten Interrupt für eilige gibt's auch noch, der springt dann die 
Priority Funktion an, wie beim Flieger die FirstClass. Braucht man aber 
noch weniger als die Schnösel welche da rumlungern und sich supertoll 
vorkommen.

Der Rest ist Datenblattstudium in Sachen Interrupts.

Noch Fragen?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.