hola estoy buscando la ayuda de algún experto en el tema de programación de pics trato de hacer una conexión eusart de transmisión y recepción utilizo el compilador xc8 de mplab pero tengo dudas de si mi código esta bien o me falta y me gustaría el consejo de alguien con experiencia en el área aquí esta mi código cualquier ayuda sera bien recibida gracias.
Código:
/*
* File: eusart.c
* Author: osciel
*
* Created on 11 de marzo de 2013, 11:21
*/
#include <pic18.h>
#include <htc.h>
#include <stdio.h>
#include <delays.h>
#define retardo Delay10KTCYx(4)
unsigned char k, j, i;
int main (void){
if (k==0){
PORTA=0;
TRISA=0x01;
ANSEL=1;
ANSELH=0;
ADCON2=0x88;
ADCON1=0;
ADCON0=1;
ADCON0bits.GO_NOT_DONE=1;
BAUDCONbits.BRG16=0;
SPBRG=5;
PORTCbits.RX=1;
PORTCbits.TX=1;
TXSTAbits.TXEN=1;
TXSTAbits.SYNC=0;
RCONbits.IPEN=1;
RCSTAbits.SPEN=1;
PIE1bits.RCIE=1;
INTCONbits.PEIE=1;
INTCONbits.GIE=1;
RCSTAbits.CREN=1;
INTCONbits.RBIE=1;
INTCONbits.RBIF=0;
ei();
k=1;
//return 0;
}
if (k==1){
// int main(void) {
PORTA=0;
TRISA=0x01;
ANSEL=1;
ANSELH=0;
ADCON2=0x88;
ADCON1=0;
ADCON0=1;
ADCON0bits.GO_NOT_DONE=1;
BAUDCONbits.BRG16=0;
SPBRG=5;
PORTCbits.RX=1;
PORTCbits.TX=1;
TXSTAbits.TXEN=1;
TXSTAbits.SYNC=0;
RCONbits.IPEN=1;
RCSTAbits.SPEN=1;
PIR1bits.TXIF=1;
INTCONbits.GIE=1;
INTCONbits.GIEH=1;
INTCONbits.GIEL=1;
INTCONbits.PEIE=1;
INTCONbits.RBIE=1;
INTCONbits.RBIF=0;
ei();
k=0;
// return 0;
}
//return 0;
}
//}
void interrupt tc(void){ //RX receptor
k=RCREG;
if(k==1){
ADCON0bits.ADON=1;
PIE1bits.ADIE=1;
}
if(k==0){
ADCON0bits.ADON=0;
PIE1bits.ADIE=0;
PIE1bits.TXIE=0;
}
i=0;
j=0;
}
void interrupt low_priority tx(void){ //TX transmisor
if(k==0){
ADCON0bits.ADON=0;
PIE1bits.ADIE=0;
PIE1bits.TXIE=0;
i=0;
j=0;
}
if(k==1){
TXREG=i;
retardo;
j=0;
PIE1bits.ADIE=1;
PIE1bits.TXIE=0;
}
}
Última edición por un moderador: