View Single Post
Old 20-12-2006, 02:05 PM   #1
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
Help! Giao tiếp I2C giữa 2 PIC

Mình làm 1 cái giao tiếp i2c đơn giản dùng PICC !
Nhưng chả hỉu sao không chạy được nữa!
mình thử debug bằng MPLAB IDE thì khi đến dòng lệnh i2c_start thì không tiếp được nữa!
Các bạn có thể giúp mình một chút được không?
Chương trình chỉ đơn giản là Master(U2) gọi Slave dậy ( đang sleep), Slave tăng 1biến rồi gửi cho Master hiển thị ra PORTD.
Mình gửi code và hình kèm theo!
Code:
//==================================================================
//Ten Chuong Trinh:i2c_test 01
//Ngaythang	nam
//ChipChipVn
//Mo ta chung:Master code
//==================================================================
#include	<16f877a.h>
#use	delay(clock=4000000)
#use i2c(MASTER,SCL=PIN_C3,SDA=PIN_C4,ForCE_Hw)
#fuses HS,NOWDT,NOPROTECT
int8 DataIn;
#INT_EXT
Data_read()                  //doc du lieu tu Slave
{
   output_low(PIN_C5);
	delay_ms(1);	
   output_high(PIN_C5);
   delay_ms(2);             // Delay doi. Slave tinh day 
   i2c_start();
   i2c_write(0xA1);
   DataIn=i2c_read();
	i2c_stop();
}
main()
{
	DataIn=0;              
   enable_interrupts(global);
   enable_interrupts(INT_EXT);
   while(1)
   output_D(DataIn);            // Luon hien thi DataIn 
}
Code:
//==================================================================
//Ten Chuong Trinh:i2c_test 01
//Ngaythang	nam
//ChipChipVn
//Mo ta chung: Slave code
//==================================================================
#include	<16f877a.h>
#use	delay(clock=4000000)
#use i2c(SLAVE,SCL=PIN_C3,SDA=PIN_C4,Address=0xA0,ForcE_Hw)
#fuses HS,NOWDT,NOPROTECT
int8 DataOut;
#INT_EXT
Data_write()
{
   DataOut++;
   i2c_write(DataOut);
}
main()
{
    enable_interrupts(global);
    enable_interrupts(INT_EXT);  // Su dung InT de danh thuc Slave
    ext_int_edge(0,L_TO_H);
    while(1)
     sleep();
}
Hình Kèm Theo
File Type: bmp Test_i2c.BMP (341.9 KB, 121 lần tải)

thay đổi nội dung bởi: chipchipvn, 21-12-2006 lúc 10:13 PM.
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn