|
|
View previous topic :: View next topic |
Author |
Message |
balamagesh Guest
|
I2c with 16f873 & 16f73 |
Posted: Wed Mar 12, 2003 10:57 pm |
|
|
I am trying use Hardware I2c with 16F873 as master and 16F73 as slave but my code is not working. i have connected SCL & SDA pin of both the MCU's and also have 1K pull-up resistors in these pins. But my below code is not working. so can anyone point where i am making mistake
Thanks in Advance
SLAVE CODE
#include <16f73.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT
#USE DELAY(CLOCK=4000000)
#use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0x10,FORCE_HW)
#byte portb=6
main()
{
byte data;
set_tris_b(0X00);
portb=0X00;
i2c_write(0x10); // slave address
data=i2c_read(); // read data
i2c_stop();
portb=data; // moving data to portb
delay_ms(1000);
}
MASTER CODE
#include <16f873.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#USE DELAY(CLOCK=4000000)
#use i2c(master,SCL=PIN_C3,SDA=PIN_C4)
main()
{
i2c_start();
i2c_write(0x10); //address of slave
i2c_write(0x44); //data to slave
i2c_stop();
}
___________________________
This message was ported from CCS's old forum
Original Post ID: 12603 |
|
|
Tomi Guest
|
Re: I2c with 16f873 & 16f73 |
Posted: Thu Mar 13, 2003 4:01 am |
|
|
Your slave code is incorrect. See the "ex_slave.c" for a correct I2C slave code.
Additionally, your master goes to sleep after i2c_stop(). Insert a while(1) cycle just after the stop call.
:=I am trying use Hardware I2c with 16F873 as master and 16F73 as slave but my code is not working. i have connected SCL & SDA pin of both the MCU's and also have 1K pull-up resistors in these pins. But my below code is not working. so can anyone point where i am making mistake
:=
:=Thanks in Advance
:=
:=SLAVE CODE
:=
:=#include <16f73.h>
:=#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT
:=#USE DELAY(CLOCK=4000000)
:=#use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0x10,FORCE_HW)
:=#byte portb=6
:=
:=main()
:={
:= byte data;
:= set_tris_b(0X00);
:= portb=0X00;
:= i2c_write(0x10); // slave address
:= data=i2c_read(); // read data
:= i2c_stop();
:= portb=data; // moving data to portb
:= delay_ms(1000);
:=}
:=
:=MASTER CODE
:=
:=#include <16f873.h>
:=#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
:=#USE DELAY(CLOCK=4000000)
:=#use i2c(master,SCL=PIN_C3,SDA=PIN_C4)
:=main()
:={
:= i2c_start();
:= i2c_write(0x10); //address of slave
:= i2c_write(0x44); //data to slave
:= i2c_stop();
:=}
___________________________
This message was ported from CCS's old forum
Original Post ID: 12609 |
|
|
balamagesh Guest
|
Re: I2c with 16f873 & 16f73 |
Posted: Mon Mar 17, 2003 10:31 pm |
|
|
:=Your slave code is incorrect. See the "ex_slave.c" for a correct I2C slave code.
:=Additionally, your master goes to sleep after i2c_stop(). Insert a while(1) cycle just after the stop call.
:=
I am trying use Hardware I2c with 16F873 as master and 16F73 as slave.My code is working to some extent.But as per below slave code i am able to receive first address, then data and some hex code( i dont know what is it).How to make my master to send continously and my slave to receive continously. Pls help me in this regard.
i have connected SCL & SDA pin of both the MCU's and also have 1K pull-up resistors in these pins.
Thanks in Advance
SLAVE CODE
#include <16f73.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT
#USE DELAY(CLOCK=4000000)
#use i2c(slave, SDA=PIN_C4, SCL=PIN_C3, address=0xa0,FORCE_HW)
#byte portb=6
main()
{
byte data;
set_tris_b(0X00);
portb=0X00;
data[0]=i2c_read(); // address of slave is received (0xa0)
portb=data[0];
delay_ms(2000);
data[1]=i2c_read(); // data is received (0x88)
portb=data[1];
delay_ms(1000);
data[2]=i2c_read(); // 0x40 is receieved
portb=data[2];
delay_ms(1000);
i2c_stop();
}
MASTER CODE
#include <16f873.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT
#USE DELAY(CLOCK=4000000)
#use i2c(master,SCL=PIN_C3,SDA=PIN_C4,FORCE_HW)
#byte portb=6
main()
{
set_tris_b(0x00);
portb=0x00;
while(TRUE)
{
i2c_start();
i2c_write(0xa0); //address
i2c_write(0x88); //data
i2c_stop();
}
}
___________________________
This message was ported from CCS's old forum
Original Post ID: 12781 |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|