Atmega 48 Externer Interrupt löst Anfangs aus

Gast #1887524
Lesenswert?
• ▲
▼
Hallo, und zwar folgendes.

Wenn ich beim Atmega den Int1 ausgang als externen Interrupt definiere, 
löst dieser direkt nach dem Starten des Controllers ein mal aus.
Das soll er aber nicht.


Hier mal der Code

Warum wird der Interrupt Handler aufgerufen?
[c]


ISR(INT1_vect)
{

//Test
PORTB |= (1<<1);


}


int main(void)
{

//Ausgänge
DDRB = 0xFF;
DDRD |= (1<<4);
//Pullup
PORTD |= (1<<3);
PORTC |= (1<<2);



//Externer Interrupt
EIMSK |= (1<<1);
SREG |= (1<<7);
EICRA |= (1<<ISC10) | (1<<ISC11);

sei();




    while(1)
    {


    }
    return 0;


}
Gast #1887525
Lesenswert?
• ▲
▼
Sorry hier der Code noch mal lesbarer
1
ISR(INT1_vect)
2
{
3

4
//Test
5
PORTB |= (1<<1);
6

7

8
}
9

10

11
int main(void)
12
{
13

14
//Ausgänge
15
DDRB = 0xFF;
16
DDRD |= (1<<4);
17
//Pullup
18
PORTD |= (1<<3);
19
PORTC |= (1<<2);
20

21

22

23
//Externer Interrupt
24
EIMSK |= (1<<1);
25
SREG |= (1<<7);
26
EICRA |= (1<<ISC10) | (1<<ISC11);
27

28
sei();
29

30

31

32

33
    while(1)
34
    {
35

36

37
    }
38
    return 0;
39

40

41
}
#1887536
Lesenswert?
• ▲
▼
Du solltest direkt vor dem sei() das Interrupt-Flag löschen
1
EIFR |= 1<<INT1;


Du solltest außerdem das rausschmeißen:
1
SREG |= (1<<7);
denn das ist ein sei(), nur sehr umständlich ausgedrückt.  Und der 
gehört nicht an diese Stelle, da die Initialisierung noch nicht 
abgeschlossen ist.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.