Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

MPLAB XC8 Interrupts Hatası

Başlatan esdevhk, 09 Haziran 2018, 18:59:06

esdevhk

Merhaba arkadaşlar,
MPLAB yeni başladım ve Interrupts'lara bakıyorum. PIC18F4620 ile 2 LED li basit bir devre kurdum. Amaç program main() altında C0 pinine bağlı LED'i yak-söndür yapıcak. Butona bastığımda harici kesme oluşucak ve C3 portuna bağlı LED yanacak. Gayet basit fakat devre çalışmıyor. Kodlarımda bir sıkıntı görmedim 3-4 farklı yabancı kaynaktan ve ayrıca datasheet'den dikkatli olarak register adreslerine baktım. Birde sizin bakmanız için buraya atıyorum kodu. Lütfen yardımcı olur musunuz hata varsa nerede?



#define _XTAL_FREQ 10000000
#include <stdio.h>
#include <stdlib.h>
#include "myConfig.h"

void interrupt INT0_Interrupt()
{  
    if(INT0IF == 1)
    {
        for(int cnt=0;cnt<5;cnt++)
        {
            LATCbits.LATC3 = ~LATCbits.LATC3;
            __delay_ms(100);
        }
        INTCONbits.INT0IF = 0;    
    }
}
void Init_EX_INT()
{
    INTCONbits.GIE = 1;  // General Enable Interrupts
    INTCONbits.PEIE = 1; // Peripheral Interrupt Enable
    INTCON2bits.INTEDG0 = 1; // Set Interrupt on rising edge.
    INTCONbits.INT0IF = 0; //clear interrupt flag.
    INTCONbits.INT0IE = 1; // Enable Interrupt 0(RB0 as interrupt)
}

void main(int argc, char** argv) 
{
    TRISBbits.TRISB0 = 1;
    TRISCbits.TRISC0 = 0;
    TRISCbits.TRISC3 = 0;
  
    Init_EX_INT();
    
    while(1)
    {
        LATCbits.LATC0 = ~LATCbits.LATC0;
        __delay_ms(100);
    }
}