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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin K. (spyro07)


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

von Thomas O. (kosmos)


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)

von Martin K. (spyro07)


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.

von Thomas O. (kosmos)


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

von Martin K. (spyro07)


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!!!

von spess53 (Gast)


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.