Forum: Mikrocontroller und Digitale Elektronik PIC Interrupt-Routinen in C


von Hans (Gast)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>3. oder gibt es sonstige Alternativen zur Programmierung in C18

Ja, das Handbuch/Userguide vom C18 lesen. Da steht alles drin was du
wissen willst.

von Hans (Gast)


Lesenswert?

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!!

von Master S. (snowman)


Lesenswert?

> 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)

von Jens M. (Gast)


Lesenswert?

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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.