ATtiny2313 - INT0 und INT1 gleichzeitig

Gast #1728926
Lesenswert?
• ▲
▼
Hi,

ich bin ziemlich unerfahren was die Programmierung von µC betrifft, da 
ich mir erst vor ein paar Tagen das Atmel Evaluationboard (von Pollin) 
bestellt habe, dazu einen ATtiny2313.

Nun versuche ich die LED die auf diesem Board ist zum Blinken zu 
bringen.
Das Blinken selbst ist nicht das Problem - mein Problem liegt darin:

Entferne ich all den Code, der zu INT1_vect "gehört", dann funktioniert 
das Schalten der LED per INT0_vect wunderbar (beim Drücken auf Taster1 
fängt die LED das blinken an).

Füge ich nun den Code für INT1_vect ein, compile und flashe, dann ist 
Taster1 nicht mehr funktionstüchtig, Taster2 dahingegen funktioniert.

Kann der ATtiny2313 nur einen Interrupt "verwalten" oder liegt mein 
Fehler wo anders ?

Ich nutze avr-gcc 4.3.2 unter Debian Lenny.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include <avr/interrupt.h>
4

5
volatile uint8_t led = 0;
6

7
ISR(INT0_vect)
8
{
9
  led = ~led; // Toggle "led"
10
}
11

12
ISR(INT1_vect)
13
{
14
  led = ~led;
15
}
16

17
int main(void)
18
{
19
  DDRD |= _BV(PD5); // PD5 -> Output
20
  DDRD &=~ _BV(PD2); // PD2 -> Input
21
  DDRD &=~ _BV(PD3); // PD3 -> Input
22

23
  GIMSK = _BV(INT0); // Enable INT0 at PD2
24
  MCUCR = _BV(ISC01); // INT0 at release of button
25

26
  GIMSK = _BV(INT1); // Enable INT1 at PD3
27
  MCUCR = _BV(ISC11); // INT1 at release of button
28

29
  sei(); // Enable INTs
30

31
  while(1)
32
  {
33
    if(led)
34
    {
35
      PORTD ^= _BV(PD5);
36
      _delay_ms(500);
37
    }
38
  }
39
  return 0;
40
}

Grüße Chris
Gast #1728942
Lesenswert?
• ▲
▼
Chris schrieb:
> GIMSK = _BV(INT0); // Enable INT0 at PD2
>   MCUCR = _BV(ISC01); // INT0 at release of button
>
>   GIMSK = _BV(INT1); // Enable INT1 at PD3
>   MCUCR = _BV(ISC11); // INT1 at release of button

Du überschreibst die Einstellungen vom INT0 bei der Initialisierung von 
INT1.
Mach es so wie bei den Ports mit "|=".

???

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.