mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mega16 ASM Externer Interrupt immer low


Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe ein Problem mit dem externem Interrupt beim Mega16.
Und zwar wird dieser IMMER auf 0 gezogen, egal ob ich mein richtiges 
Signal anlege oder, ob ich einen Widerstand gegen VCC anschliese.
Er wird immer auf 0 gezogen.

Woran liegt das?

Hier noch mein Code
  rjmp init                 ; Reset Handler                           
.org 0x002
  rjmp encoder_li

.org 0x004
  rjmp encoder_re  


encoder_li:
encoder_li_1:
  inc     li_1
  reti


encoder_re:
encoder_re_1:
  inc     re_1
  reti

init:
    ldi     temp1, LOW(RAMEND)                ; Stackpointer initialisieren
     out     SPL, temp1
     ldi     temp1, HIGH(RAMEND)
    out     SPH, temp1

;;;;;;;;;;Int0 und INT1 aktivieren fallende Flanke;;;;;;;;;;
  
    ldi     temp1,  (1<<ISC11)| (1<<ISC10)| (1<< ISC01)| (1<< ISC00)       ; INT0 konfigurieren
   out     MCUCR, temp1
  
    ldi     temp1, (1<<INT1)| (1<<INT0)               
    out     GICR, temp1

  ldi    temp1, 0b11001111
  out    DDRD, temp1

  sei

Autor: Thomas O. (kosmos)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du willst das auf einen fallende Flanke reagiert wird musst du
das so einstellen

(1<<ISC11)| (0<<ISC10)| (1<< ISC01)| (0<< ISC00)

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja danke, ich habe vergessen den Kommentar zu verändern.

Aber das ist ja nicht mein Problem, mein Prob ist das die beiden 
Interrupt-Pins immer vom µc auf low gezogen werden. Das kann doch 
eigentlich nicht sein.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ldi temp1, 0b11110011
out DDRD, temp1

du hast die falschen Pins als Eingang gesetzt PinD2 und PinD3 sind bei 
dir immer noch Ausgänge

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AHHHHHHHHHHHHHHH, danke, bin ich dumm.

Ich habe mal wieder die PINs (bits) von links nach rechts gezählt.
Zu dumm.
Naja, jetzt gehts, danke!!!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wieso konfigurierst du INT1/2 als Ausgang?

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.