ATmega169 "EIMSK" nicht ansprechbar

OP #2899129
Lesenswert?
• ▲
▼
Hallo zusammen,

ich versuche, die Pin Change Interrupts beim ATmega169 zu nutzen. Aber 
der Befehl

EIMSK = (1<<PCIE1);

funktioniert nicht. Das Register EIMSK ist danach immer noch =Null (habe 
es testweise ausgelesen) und die Interrupts laufen nicht. Im Debugger 
geht es einwandfrei. Der Oszillator läuft, andere Interrupts, z.B. Timer 
funktionieren. Selbst wenn ich das Programm auf wenige Zeilen 
zusammenkürze, ich kann EIMSK nicht beschreiben. Auch ohne 
Compileroptimierung ändert sich nichts.

Was kann man noch tun?

Danke und Grüße
Martin
#2899152
Lesenswert?
• ▲
▼
Interrupts laufen nicht, oder Register wird nicht beschrieben?

Gewisse grosse Megas haben einen Kompatibilitätsmodus. Mein ähnliches 
Problem kürzlich war darauf zurückzuführen. Keine Ahnung, ob das auf den 
169 zutrifft. Mal im Datenblatt schauen?
OP #2899535
Lesenswert?
• ▲
▼
Ja, ich meine den Simulator. Das Überprüfen habe ich nur zur Fehlersuche 
eingeschoben. Pins in PCMSK1 sind freigegeben.

Hier mal der Code, an PB4..6 sind Taster gegen Masse (normal einlesen 
über PINB geht), PE6 ist ein Testausgang.

1
#define F_CPU 1000000
2

3
#include <avr/io.h>
4
#include <avr/interrupt.h>
5

6
ISR(SIG_PIN_CHANGE1);
7

8
int main(void)
9
{
10
  DDRE = (1<<PE6);
11
  PORTB = (1<<PB4)|(1<<PB5)|(1<<PB6);
12

13
  EIMSK  = (1<<PCIE1);
14
  PCMSK1 = (1<<PCINT12)|(1<<PCINT13)|(1<<PCINT14);
15
  if(EIMSK) PORTE |= (1<<PE6);  // zur Fehlersuche, EIMSK ist hier leider Null
16
  sei();
17

18
  while(1)
19
  {
20
    asm("nop");
21
  }
22
}
23

24
ISR(SIG_PIN_CHANGE1)
25
{
26
  PORTE |= (1<<PE6);
27
}

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.