Ðề tài: Giao tiếp CAN
View Single Post
Old 06-04-2011, 01:00 AM   #55
lop06d2
Đệ tử 1 túi
 
Tham gia ngày: Aug 2010
Bài gửi: 13
:
chương trình của quocviet233
void main()
{
unsigned char temperature, data[8];
unsigned short init, send, dt, len, CANread;
char SJW, BRP, Phase_Seg1, Phase_Seg2, Prop_Seg, txt[4];
long id, mask;
TRISB = 0;
TRISC = 0;
TRISF = 0x04;
SJW = 1;
BRP = 1;
Phase_Seg1 = 6;
Phase_Seg2 = 7;
Prop_Seg = 6;
init = CAN_CONFIG_SAMPLE_THRICE & // Form value to be used
CAN_CONFIG_PHSEG2_PRG_ON & // with CAN1Initialize
CAN_CONFIG_XTD_MSG &
CAN_CONFIG_DBL_BUFFER_ON &
CAN_CONFIG_MATCH_MSG_TYPE &
CAN_CONFIG_LINE_FILTER_OFF;
send = CAN_TX_PRIORITY_0 & // Form value to be used
CAN_TX_XTD_FRAME & // with CAN1Write
CAN_TX_NO_RTR_FRAME;
CAN1read = 0;
CAN1SetMask(CAN_MASK_B1, mask, CAN_CONFIG_XTD_MSG);
CAN1SetMask(CAN_MASK_B2, mask, CAN_CONFIG_XTD_MSG);
CAN1SetFilter(CAN_FILTER_B2_F3,3,CAN_CONFIG_XTD_MS G);
CAN1SetOperationMode(CAN_MODE_NORMAL, 0xFF);
Lcd_Custom_Config(&PORTB, 5,4,3,2,1,0, &PORTC, 13);
Lcd_Custom_Cmd(LCD_CLEAR);
Lcd_Custom_Out(1,1 ,"CAN BUS");
Delay_ms(1000);
for(; // Endless loop
{
Lcd_Custom_Cmd(LCD_CLEAR); //Clear LCD
Lcd_Custom_Out(1,1, "Temp = "); // Display "Temp = "
//
// Send a message to Node:COLLECTOR and ask for data
//
data[0] = 'T'; // Data to be sent
id = 500; // Identifier
CAN1Write(id, data, 1, send); // send T
//
// Get temperature from node:COLLECT
//
dt = 0;
while(!dt) dt = CAN1Read(&id, data, &len, &CANread);
if(id == 3)
{
temperature = data[0];
ByteToStr(temperature,txt); // Convert to string
Lcd_Custom_Out(1,8,txt); // Output to LCD
Delay_ms(1000); //Wait 1 second
}
}
}
mình đưa vào microxin viết cho con PIC 18F4580 nó có báo lỗi ko dịch được phai help anh em nào thành thạo chỉ cho mình lỗi sai ở đâu ko?
cám ơn trước
lop06d2 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn