PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 06-01-2008, 11:26 PM   #27
alamanda
Đệ tử 1 túi
 
alamanda's Avatar
 
Tham gia ngày: Nov 2005
Bài gửi: 19
:
Question

Mong các bác chỉ giúp em phần I2C slave cho dsPIC.
Đây là toàn bộ chương trình cho con slave :
Code:
#include <p30f4011.h>
_FOSC(CSW_FSCM_OFF & FRC_PLL4);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_ON & BORV_27 & PWRT_4 & MCLR_EN & RST_IOPIN);
_FGS(CODE_PROT_OFF);

#include <i2c.h>

void SI2C_init(void);
void slave_reply(unsigned char data);

unsigned char rcv_data,trn_data;
unsigned char data_request;

void _ISR_PSV _SI2CInterrupt(void)
{
	_SI2CIF = 0;
	if(_R_W)	//Read data from Slave
	{
		data_request = 1;
	}else	//Write data to Slave
	{
		if(_D_A) //I2CRSR chua du lieu
			rcv_data = I2CRCV;//doc du lieu
		else	//I2CRSR chua dia chi
			Nop();//Khong lam gi ca
	}
}

int main(void)
{
	SI2C_init();
	while(1)
	{
		if(data_request)
		{
			data_request = 0;
			trn_data ++;
			slave_reply(trn_data);
		}
		if(rcv_data)
		{
			rcv_data = 0;
		}
	}
	return 0;
}
void SI2C_init(void)
{
	I2CADD = 0x10;
	I2CCON = I2C_ON & I2C_IDLE_STOP & I2C_CLK_REL 
			& I2C_IPMI_DIS & I2C_7BIT_ADD
			& I2C_SLW_DIS & I2C_SM_DIS 
			& I2C_GCALL_DIS & I2C_STR_DIS
			& I2C_ACK & I2C_ACK_DIS & I2C_RCV_DIS 
			& I2C_STOP_DIS & I2C_RESTART_DIS 
			& I2C_START_DIS;
	IPC3bits.SI2CIP = 1;
	IEC0bits.SI2CIE = 1;
	_SI2CIF = 0;
}
void slave_reply(unsigned char data)
{
	I2CTRN = data;
	_SCLREL = 1;//Giai phong SCL
}
Vấn đề là không biết chương trình trên sai hay thiếu chỗ nào mà I2C master ko nhận được tín hiệu Ack từ slave khi truyền đến slave đó. Bus I2C ở đây chỉ có 2 IC và chương trình I2C Master đã chạy đúng với EEPROM.

thay đổi nội dung bởi: alamanda, 08-01-2008 lúc 09:29 PM. Lý do: Bổ sung code
alamanda vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) namqn dsPIC - Bộ điều khiển tín hiệu số 16-bit 16 22-08-2012 12:35 AM


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam