PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   Ai làm về CAN rồi xem dùm e (http://www.picvietnam.com/forum/showthread.php?t=2510)

KA52 24-06-2008 12:41 PM

Ai làm về CAN rồi xem dùm e
 
Cái này là 1 node e vẽ, sau khi lắp 2 cái như vậy, chạy và... ko thấy zì hết. Pác nào làm cái này rùi xem dùm e có bị sai zì ko vậy?
Truyền
Code:

#include <18F4580.h>
#fuses HS,NOPROTECT,NOLVP,NOWDT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#include <can-18F4580.c>

#define SET_LED_ID_B        0x202  //set LEDs for CAN port B

void main()
{
  int mang[16]={0,1,2,3,4,5,6,7,8,9,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
  int *pointer,led,i;
  set_tris_A(0x00);
  set_tris_D(0xff);
  pointer=&mang[0];
  can_init();
  i=16;
  while(1)
  {
  //if(input(pin_D4)==0)
  //{
      if ( can_tbe() )      //every two seconds, send new data if transmit buffer is empty
      { 
        led=*pointer;
        can_putd(SET_LED_ID_B,&led , 1, 1, 1, 0);       
        output_A(led);
        delay_ms(1000);       
      }
      pointer++;
      i--;
     
      if(i==0)
      {
        i=16;
        pointer=&mang[0];
      }
  }
 
  //}
}

Nhận
Code:

#include <18F4580.h>
#fuses H4,NOPROTECT,NOLVP,NOWDT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)



#define SET_LED_ID_B        0x202

#include <can-18F4580.c>


////khai bao cac ham dung trong truong trinh
void BinToHexAscii(char c);
int8 Ascii2Hex(char c1,char c2);


//////////////////////////////////////
int16 ms;
struct rx_stat rxstat;
int32 rx_id;
int in_data;
int rx_len=8,*pointer;

int recive[15],i=0;

///////////////////////////////////////
#INT_CANRX0
void can_reciver()
{
  can_getd(rx_id, &in_data,rx_len, rxstat);
  if(rx_id==SET_LED_ID_B)
  {
      output_A(in_data);
    //  *pointer=in_data;
      //if(pointer==14)
    // {pointer=0;}
  }
//  pointer++;
}
//////////////////////////////////////
void main()
{
  enable_interrupts(GLOBAL);
  enable_interrupts(INT_CANRX0);
  pointer=&recive[0];
  can_init();
  set_tris_A(0x00);
  //set_tris_C(0x00);
  set_tris_D(0xff);
  while(TRUE)
  {
  /*  if(input(pin_D0)==0)
      {
        pointer=&recive[0];
        while(pointer<(15+&recive[0]))
        {
            output_A(*pointer);
            pointer++;
            delay_ms(1000);
        }
        pointer=&recive[0];
      }*/
  } 
}


KA52 30-06-2008 11:54 PM

Hix. e bít rùi, điện trở đầu cuối fải chính xác 120 Ohm mới lên, trong datasheet ghi 108~128 là bậy bạ hết mức.

toanck86 04-07-2008 09:04 PM

ặc, bác làm được rồi, còn hình sơ đồ đâu ( làm xong xóa đi hả ):(

KA52 05-07-2008 12:04 AM

cái hình up lại nè,
http://i18.photobucket.com/albums/b104/hhtc/can.jpg

huuhoa2708 23-10-2009 11:55 PM

giai thich hoat dong cua so do gium minh ty dc?

nhozcaibang 17-11-2014 03:59 PM

bạn KA52 có thể cho m xin kaj hình được không? :D link trên lỗi rồi ... :D thanks!!
Với cho hỏi, bạn dùng phần mềm gì để code và vẽ lun nha! ... cảm ơn nhiều!!

nhozcaibang 18-11-2014 12:02 PM

cho mình xin kaj hình được không???
 
Cho mình xin kaj hình của code này được không bạn ????!!!!
gmail: ducdatndd93@gmail.com

TheFear 15-11-2015 03:54 PM

Anh ơi gửi lại hình được không ạ, hình này bị lỗi không coi được :|

Trích:

Nguyên văn bởi KA52 (Post 17253)



Múi giờ GMT. Hiện tại là 11:02 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam