Autor Tema: comunicacion Bus CAN con el Dspic30f4013  (Leído 2146 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Rey_electron

  • PIC10
  • *
  • Mensajes: 2
comunicacion Bus CAN con el Dspic30f4013
« en: 06 de Junio de 2013, 07:34:57 »
Hola masters :D, soy nuevo programando dspic y estoy tratando de hacer una comunicacion CAN con el dspic 30f4013. Alguien me puede ayudar?, he escrito un codigo y no me funciona:

#include <p30f4013.h>
#include <stdio.h>
_FOSC(CSW_FSCM_OFF & XT);       //reloj externo
_FWDT(WDT_OFF);                 //Turn off the Watch-Dog Timer.
_FBORPOR(MCLR_EN & PWRT_OFF);   //Enable MCLR reset pin and turn off the
_FGS(CODE_PROT_OFF);            //Disable Code Protection

int main()
{
ADPCFG = 0xFFFF;            //Configuro mis salidas digitales
LATB=0X0;                  //Inicializo mis salidas como 0
TRISB=0X0;
//Configuración de la trama CAN
C1CTRLbits.CANCAP=0X1;         //Habilito la captura de CAN
C1CTRLbits.CSIDL=0X0;         //El modulo CAN continua en opracion cuando esta en modo idle
C1CTRLbits.CANCKS=0X1;         //Defino mi frecuencia CAN con mi FCY
C1CTRLbits.REQOP=0X0;         //Configuro como modo standart
C1CTRLbits.ICODE=0X0;          //No interrupciones

C1CFG1=0X0;                //Baud rate de 2/FCAN.

while(1)
   {
//CONFIGURACIONES TX
C1TX0CON=0XB;               //Habilito mi TxReQ y pongo alta prioridad
C1TX0SID=0X1;
C1TX0B1=0X1;               //Envio mi trama con el valor de 2

//CONFIGURACIONES RX
if(C1RX1CONbits.RXFUL==0X1)     //Si se recibio el trama correctamente
    {
    if(C1RX0B1==0X2)            //Si mi bus recibio 1
      {
     PORTB=0x1;               //prendo LED.
      }
     }

    }
return 0;
}

utilizo Cristales externos de 8Mhz y programos con un master prog. Gracias, espero cooperar en este grupo con el paso del tiempo. :D