Hi everyone!
I'm trying to use the 2 EUSART of a pic18f24j11.
It's my first time with C18 and double EUSART, so I need some help...
It seems that the EUSART2 receiver doesn't work (the PIR3.RC2IF never goes to 1).
Do you have any ideas?
Thank you so much for your help
Sonia
My updated code:
I'm trying to use the 2 EUSART of a pic18f24j11.
It's my first time with C18 and double EUSART, so I need some help...
It seems that the EUSART2 receiver doesn't work (the PIR3.RC2IF never goes to 1).
Do you have any ideas?
Thank you so much for your help
Sonia
My updated code:
Code:
#include "p18f24j11.h"
#include "usart.h"
#include "delays.h"
#pragma config WDTEN = OFF
#pragma config STVREN = OFF
#pragma config XINST = OFF
#pragma config CP0 = OFF
#pragma config OSC = HS
#pragma config T1DIG = OFF
#pragma config LPT1OSC = OFF
#pragma config FCMEN = OFF
#pragma config IESO = OFF
#pragma config DSBOREN = OFF
#pragma config DSWDTEN = OFF
#pragma config IOL1WAY = OFF
void Delay1ms(void)
{
Delay1KTCYx(5);
}
void Delay_ms(int count)
{
int i;
for(i=0;i<count;i++) Delay1ms();
}
void main (void)
{
int dato;
TRISAbits.TRISA0 = 1;
TRISAbits.TRISA1 = 0;
TRISCbits.TRISC0 = 0;
TRISCbits.TRISC1 = 0;
//***************************************************
// CODICE ASSEMBLY PER PIN MAPPING
//***************************************************
_asm
MOVLB 0x0E // unlock registri
MOVLW 0x55 // .....................
MOVWF EECON2, 0 // ..
MOVLW 0xAA // ..
MOVWF EECON2, 0 // ..
BCF PPSCON, 0, BANKED // .....................
MOVLW 0x00 // RX2 -> RP0
MOVWF RPINR16, BANKED // .....................
MOVLW 0x05 // TX2 -> RP1
MOVWF RPOR1, BANKED // .....................
MOVLW 0x55 // lock registri
MOVWF EECON2, 0 // ..
MOVLW 0xAA // ..
MOVWF EECON2, 0 // ..
BSF PPSCON, 0, BANKED // .....................
_endasm
//***************************************************
Open1USART ( USART_TX_INT_OFF
& USART_RX_INT_OFF
& USART_ADDEN_OFF
& USART_ASYNCH_MODE
& USART_EIGHT_BIT
& USART_CONT_RX
& USART_BRGH_HIGH, 129);
Open2USART ( USART_TX_INT_OFF
& USART_RX_INT_OFF
& USART_ADDEN_OFF
& USART_ASYNCH_MODE
& USART_EIGHT_BIT
& USART_CONT_RX
& USART_BRGH_HIGH, 129);
Delay_ms(200);
while (1)
{
if(DataRdy1USART())
{
dato= Read1USART();
Write2USART(dato);
LATCbits.LATC1 ^= 1; //DEBUG
}
if(PIR3bits.RC2IF)
{
dato= Read2USART();
Write1USART(dato);
LATCbits.LATC0 ^= 1; //DEBUG
}
}
}
Last edited: