24 Haziran 2018, 14:52:26

Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME


MPLAB XC8 Interrupts Hatası

Başlatan huseyink, 09 Haziran 2018, 21:59:06

huseyink

09 Haziran 2018, 21:59:06 Son düzenlenme: 09 Haziran 2018, 22:11:01 huseyink
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?



Kod Seç

#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 argcchar** argv
{
    
TRISBbits.TRISB0 1;
    
TRISCbits.TRISC0 0;
    
TRISCbits.TRISC3 0;
  
    
Init_EX_INT();
    
    while(
1)
    {
        
LATCbits.LATC0 = ~LATCbits.LATC0;
        
__delay_ms(100);
    }
}