PIC 16F627 Hi Tech C Compiler Interrupt

Gast #3389249
Hallo zusammen,

ich weiß irgendwie nicht mehr weiter:

Erstmal zur Hard / Software:

Pic 16F627 mit PICKIT2

MPLAB X mit HItech C Compiler

Situation:

RB0 = Eingang für Interrupt

RB1..7 = ausgang, blinkende LEDs

RA0 = Ausgang; Ein/ Aus durch interrupt

Es läuft auch soweit nur das Interrupt bedingte ausschalten von RA0 
funktioniert nicht. Ich habe das gefühl, das nach 1maligem durchlaufen 
des Interrupts irgendein bit gesetzt/gelöscht wird, das weitere 
interrupts verhindert, finde aber den Fehler nicht.

Wäre über jede hilfe Dankbar!

Viele Grüße

Ben


___Code___

#include <stdio.h>
#include <stdlib.h>
#include <htc.h>

#define _XTAL_FREQ 4000000


__CONFIG(FOSC_XT  & WDTE_OFF & MCLRE_OFF & LVP_OFF & CP_OFF & 
BOREN_OFF);


void interrupt test_int (void) {
    if (PORTAbits.RA0 == 0){
        PORTAbits.RA0 = 1;
    }
    else {
        PORTAbits.RA0 = 0;
    }
    INTF =0;
//    INTE = 1;
//    GIE = 1;
    return;
}
void init (void);

void main(void) {
    init();
    while(1){
    PORTB = 0xFE;
    __delay_ms(1000);
    PORTB = 0x00;
    __delay_ms(1000);
    }


}


void init (void){
    TRISA = 0xFE;
    TRISB = 0x01;
    INTE = 1;
    PORTA = 0x00;
    PORTB = 0x00;
    ei();

}
#3389283
PORTA.RA0 wird immer 0 (oder 1 - weiss ich jetzt nicht auswendig) 
liefern da PORTA nach einem Reset immer als ANALOG-Port definiert ist.
Für DIGITAL-Betrieb muss vorher der Comperator abgeschaltet werden 
(CMCON = 0x07)!
(Datenblatt p.29)
Gast #3389289
Hallo,

das war zu einfach... wie oft ich schon in diese Falle getappt bin -.-


Vielen Dank!

Und auch gleich die nächste Frage:

muss ich eigentlich in der ISR auch das w/Status register sichern  oder 
macht er das von alleine? Werde da nicht so ganz schlau aus dem 
datenblatt.

Viele Grüße

Ben

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 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.