Sleep Mode disable Externer Interrupt

OP (Firma: FHNW) #3248555
Lesenswert?

Guten Abend allerseits!

Ich verzweifle beim Versuch meinen ATMega2561 per externem Interrupt aus 
dem Power Down Mode aufzuwecken! Und zwar hab ich das Problem nur mit 
dem INT7?!

Da meine Folientastatur an 4 Interruptleitungen hängt mache ich im 
Program also viermal dasselbe, mit INT4,INT5,INT6 und INT7.

Hier ein kleiner Ausschnitt aus dem Code
1
// Init Interrupt Ports input
2
DDRE = ( (0<<DDE7) | (0<<DDE6) | (0<<DDE5) | (0<<DDE4));
3
/* Ports output */
4
DDRD = ( (1<<DDD7) | (1<<DDD4) );
5
DDRG = ( (1<<DDG3) | (1<<DDG0) );
6
/* Pullup resistance Interrupt Ports active */
7
PORTE = ( (1<<PE7) | (1<<PE6) | (1<<PE5) | (1<<PE4));
8
/* Pullup resistance output Ports inactive */
9
PORTD = ( (0<<PD7) | (0<<PD4) );
10
PORTG = ( (0<<PG3) | (0<<PG0) );
11

12
EIMSK |= _BV(INT5);  //Enable INT5
13
EIMSK |= _BV(INT4);  //Enable INT4
14
EIMSK |= _BV(INT6);  //Enable INT6
15
EIMSK |= _BV(INT7);  //Enable INT7
16
EICRB |= _BV(ISC71); //Raising Edge Interrupt
17
EICRB |= _BV(ISC70); //
18

19
while (1)
20
  {
21
  ...
22
    
23
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
24
  sleep_enable();
25
  sei();
26
  sleep_mode();
27
  ...
28
  }
29

30
ISR(INT5_vect)
31
{
32
 }
33
ISR(INT4_vect)
34
{
35
 }
36
ISR(INT6_vect)
37
{
38
 }
39
ISR(INT7_vect)
40
{
41
 }

an was kann es also liegen, dass der Controller bei Tasten reagiert, 
welche an INT4:6 hangen aber nicht auf diese an INT7???Ist für mich 
unbegreifbar^^
OP (Firma: FHNW) #3248597
Lesenswert?

g457 schrieb:

> Mit INT7:4 kommt man nur via Level-Interrupt [0] aus dem Power-Down.
>
> [0] Anmerkung 3 zur Tabelle 11-1 "Active Clock Domains and Wake-up
> Sources in Different Sleep Modes" im Datenplatt [1]
> [1] http://www.atmel.com/Images/doc2549.pdf

Ok. Das heisst soviel, dass ich den Low Level Interrupt einstellen 
muss?!

Was aber dann noch weniger Sinn macht, ist INT4:6 "funktionieren"?!
Gast #3248600
Lesenswert?

> Ok. Das heisst soviel, dass ich den Low Level Interrupt einstellen
> muss?!

Ja.

> Was aber dann noch weniger Sinn macht, ist INT4:6 "funktionieren"?!

Die Hast Du ja auch nicht auf R∗i∗sing Edge gesetzt.

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