Zdravim tvorim jednu aplikaci a hodilo by se mi preruseni rozdelene do dvou urovni. Jedna na INT0 tam a druha na USARTU. Mam problem ze mi INT0 vyvola HIGH preruseni ale uz se nevrati zpet k hlavni smycce.Uz nevim cim to je…
Zdrojak heer:
//Nastaveni registru preruseni
RCONbits.IPEN = 1; // Dve urovne preruseni
INTCON2bits.RBPU = 1; // Nepouyivej pullup na PORTB
INTCON2bits.INTEDG0 = 1; // Reaguj na sestupnou hranu
INTCON2bits.INTEDG1 = 1; // Reaguj na sestupnou hranu
INTCON2bits.INTEDG2 = 1; // Reaguj na sestupnou hranu
PIE1bits.RCIE = 1; //Zapni preruseni USARTu
INTCONbits.INT0IE = 1; //Yapni preruseni INT1
// INTCON3bits.INT1IP = 0; // INT0 IP bude high
IPR1bits.RCIP = 1; // USART bude low
INTCONbits.GIEH = 0;
INTCONbits.GIEL = 1;
while (1)
{
if (PORTCbits.RC1 == 1)
{
XLCDClear();
XLCDL1home();
XLCDPrintLInt(123);
INTCONbits.GIEH = 1;
}
PORTCbits.RC4 = 1;
}
}
//----------------------------------------------------------------------------
// Vektor preruseni vyssi priority
#pragma code InterruptVectorHigh = 0x08
void InterruptVectorHigh (void)
{
_asm
goto InterruptHandlerHigh //skok na obsluzny program preruseni
_endasm
}
//----------------------------------------------------------------------------
// Vektor preruseni nizsi priority
#pragma code InterruptVectorLow = 0x18
void InterruptVectorLow (void)
{
_asm
goto InterruptHandlerLow //skok na obsluzny program preruseni
_endasm
}
//----------------------------------------------------------------------------
// Podprogram obsluhy vyssiho preruseni
#pragma code
#pragma interrupt InterruptHandlerHigh
void InterruptHandlerHigh (void)
{
INTCONbits.GIEH = 0;
INTCON3bits.INT1IF = 0;
PORTCbits.RC4 = 0;
DlouhaPauza(1);
// start podprogramu obsluhy preruseni
}
//----------------------------------------------------------------------------
// Podprogram obsluhy vyssiho preruseni
#pragma code
#pragma interrupt InterruptHandlerLow
void InterruptHandlerLow (void)
{
// start podprogramu obsluhy preruseni
PIR1bits.RCIF = 0;
PORTCbits.RC4 = 0;
DlouhaPauza(1);
}
//----------------------------------------------------------------------------
Uz s tim experimentuji dlouho a porad neajk nevim "(