Conexion eusart de transmision y recepcion con pic 18f25k20

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:
Atrás
Arriba