Bitte Hilfe !! PinCange-Interrupt will nicht gehen

Gast #27344
Hallo Leute,

ich häng seit zwei Tagen an folgendem Codefragment. Wie man sieht 
versuche ich den PIN-Change-Interrupt eines ATTiny15 zu benutzen. Wenn 
ich in folgendem Code den PIN 2 des IC (PortB 4) auf Masse lege, fürhr 
er trotzdem weiter munter seine Interrupts aus und verzweigt IMMER in 
meine Interrupt-Routine ...

Warum ? Stimmt da was am Environment nicht ?!

Wer kann mir helfen ?

Besten Dank schon mal

UBoot-Stocki

.include "tn15def.inc"

.org 0x000        ; Programm kommt an Anfang von PROM

.def temp = r16        ; temporäres Register definieren
.def led = r17

initint:
    rjmp init     ; Reset handler
    reti       ; IRQ0 handler
    rjmp pinchg    ; Pin change handler
    reti       ; Timer1 compare match
    reti       ; Timer1 overflow handler
    reti      ; Timer0 overflow handler
    reti       ; EEPROM Ready handler
    reti       ; Analog Comparator handler
    reti       ; ADC Conversion Handler

init:
    ldi temp, 0b11101111
    out DDRB, temp    ; Port PB3 als Ausgang, PB4 Eingang

    ldi led, 1    ; LED initialisieren

    ldi temp, 0b00100000
    out GIMSK, temp    ; Pin-Change Interrupt enable

    sei      ; Interrupts freigeben

    rjmp main    ; Programmstart

pinchg:
    in temp, PORTB
    andi temp, 0b00010000  ; vergleicht ob BIT PB4 gesetzt ist
    brne pinend

    ... hier soll was passieren ...

pinend:    reti

main:          ; Hauptprogramm
    rjmp main
Gast
Hi Mikki,

vielen Dank für den TIP. Das war aber nur die halbe Miete ;-)

Offensichtlich setzt der PIN-Change-Interrupt voraus, daß der Eingang 
nicht offen ist. Wenn man als die Pull-Ups des Ports setzt gehts sofort 
!!!

Steht das irgendwo ? Habs nur durch Zufall entdeckt ...

Gruß

UBoot-Stocki

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.