Atmel, Interrupt

OP #1181146
Lesenswert?
• ▲
▼
Hallo,

irgendwie werde ich aus den Beispielen für meinen Atmega3290p nicht 
schlau. Ich habe nun zwei verschiedene ISR-Definitionen, von denen ich 
der Glaube, dass sie das gleiche bewirken.
Bin mir aber nicht 100%ig sicher. Kann mir jemand sagen ob die zwei 
nachfolgenden code-Schnipsel das gleiche tun? (also gleich schnell 
aufgerufen werden und beide den Stack sichern usw.)

[c]// code 2:
ISR(PCINT0_vect, __attribute__((signal)))
{
}
[c]


[c]// code 2:
void __attribute__((signal)) PCINT0_vect(void);
void PCINT0_vect(void)
{
}
[c]
OP #1181175
Lesenswert?
• ▲
▼
Dort habe ich die erste Variante auch her. So wie ich es dort raus 
gelesen habe, muss ich das Atribut mit angeben, damit der Stack 
gesichert wird.
(Quelle: It's important that these registers, as well as the status 
register, get saved and restored. The extra code needed to do this is 
enabled by tagging the interrupt function with __attribute__((signal)).)

Die zweite Variante habe ich aus einem Beispiel und ich frage mich ob 
dieses Beispiel falsch ist, da es ebenfalls funktioniert.
Gast #1181242
Lesenswert?
• ▲
▼
Hans Wurst wrote:
> Dort habe ich die erste Variante auch her. So wie ich es dort raus
> gelesen habe, muss ich das Atribut mit angeben, damit der Stack
> gesichert wird.
Den Stack kann man so nicht mitsichern, macht auch keinen Sinn, dafür 
ist es ja ein Stack.

> (Quelle: It's important that these registers, as well as the status
> register, get saved and restored. The extra code needed to do this is
> enabled by tagging the interrupt function with __attribute__((signal)).)
Jo, schon richtig, aber du sollst die Interrupt-FUNKTION damit 
ausstatten. Und genau dazu gibts ISR.
Gast #1181308
Lesenswert?
• ▲
▼
Das, was du da schreibst, sind Interrupt-Funktionen. Entweder, du 
baust die von Hand (Prototyp + Attribut, in etwa das zweite Beispiel in 
deinem ursprünglichen Beitrag), ODER du benutzt einfach das 
vorgefertigte ISR-Makro, welches den Rest übernimmt. Letztlich kommt da 
auch irgendwas mit Attributen bei rum, aber das braucht dich ja dann 
nicht mehr zu interessieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren