PIC 16F627 Hi Tech C Compiler Interrupt

Gast #3389249
Lesenswert?

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();

}
Gast #3389289
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren