Ora provo a fare qualcosa grazie ancora ciao Ivo
Moderatore:
Paolino
void interrupt high_isr(void)
#elif defined (__18CXX)
#pragma code high_isr=0x08
#pragma interrupt high_isr
void high_isr(void)
#else
#error "Invalid compiler selection for implemented ISR routines"
#endif
{
if (RC2IF)
{
while(!PIR3bits.RC2IF);
ch = RCREG1;
while(!PIR3bits.TX2IF);
TXREG1 = ch;
}
/* This code stub shows general interrupt handling. Note that these
conditional statements are not handled within 3 seperate if blocks.
Do not use a seperate if block for each interrupt flag to avoid run
time errors. */
#if 0
/* TODO Add High Priority interrupt routine code here. */
/* Determine which flag generated the interrupt */
if(<Interrupt Flag 1>)
{
<Interrupt Flag 1=0>; /* Clear Interrupt Flag 1 */
}
else if (<Interrupt Flag 2>)
{
<Interrupt Flag 2=0>; /* Clear Interrupt Flag 2 */
}
else
{
/* Unhandled interrupts */
}
#endif
}
void InitApp(void)
{
TRISD = 0x3F;
LATD = 0;
}
void EUSART2_deInit(void)
{
BAUDCON2 =0x00;
SPBRG = 0x0000;
TXSTA2 = 0x00;
PIE3bits.TX2IE = 0;
PIR3bits.TX2IF = 0;
IPR3bits.TX2IP = 0;
RCSTA2 = 0x00;
PIE3bits.RC2IE = 0;
PIR3bits.RC2IF = 0;
IPR3bits.RC2IP = 0;
RC2IE = 1;
RC2IP = 1;
GIE = 1;
PEIE = 1;
}
void main(void)
{
ConfigureOscillator();
InitApp();
EUSART2_deInit();
// Codice copiato da pagina 164 datasheet
//Unlock registers
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
PPSCONbits.IOLOCK = 0;
// Assign RX2 to pin RP0 (RA0)
RPINR16 = 0x00;
// Assign TX2 to pin RP1 (RA1)
RPOR1 = 0x06;
//Lock register
INTCONbits.GIE = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
PPSCONbits.IOLOCK = 1;
// configurazione EUSART2
TRISAbits.TRISA0 = 1;
TRISAbits.TRISA1 = 0;
SPBRG2 = 0xE2;
SPBRGH2 = 0x04;
BAUDCON2bits.BRG16 = 1;
TXSTA2bits.BRGH = 1;
TXSTA2bits.SYNC = 0;
RCSTA2bits.SPEN = 1;
TXSTA2bits.TXEN = 1;
RCSTA2bits.CREN = 1;
while(!PIR1bits.TX1IF);
TXREG1 = 55;
for(;;)
{
if (ch == 97)
{
LATDbits.LATD6 = 1;
}
if (ch == 98)
{
LATDbits.LATD6 = 0;
}
if (ch == 99)
{
LATDbits.LATD7 = 1;
}
if (ch == 100)
{
LATDbits.LATD7 = 0;
}
}//for
}
PIE3bits.RC2IE = 1;
INTCONbits.GIE = 1;
INTCONbits.PEIE = 1;
Torna a Firmware e programmazione
Visitano il forum: Nessuno e 27 ospiti