benoit
Joined: 21 May 2008 Posts: 2
|
pic18f252 i2c problem |
Posted: Wed May 21, 2008 11:27 am |
|
|
Hello,
here I begin. I need assistance on a program I2C. I do not manage to program a clock real-time
Code: | ////////pg///////
#include <18F452.h>
#use i2c(master,scl=pin_A5,sda=pin_A3)
byte const table[10]={0x00,0x08,0x04,0x03,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b};
byte const table2[10]={0x0c,0x95,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1};
int i,h,m,ah,am,data,add;
///////////////////////////////////interrupt///////////////////////
#int_ext
void inter()
{
output_high(pin_B1);
}
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
void write ()
{
i2c_start();
i2c_write(0xa0);
i2c_write(add);
i2c_write(data);
i2c_stop();
}
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
void config()
{
i=0;
add=table[i];
data=table2[i];
write();
i=i++;
add=table[i];
data=table2[i];
write();
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
void regh()
{
i=i++;
add=table[i];
data=h;
write();
i=i++;
add=table[i];
data=m;
write();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
void regalm()
{
i=i++;
add=table[i];
data=ah;
write();
i=i++;
add=table[i];
data=am;
write();
}
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
void main (void)
{
h=0x05; // test value
m=0x05;
ah=0x05;
am=0x06;
config();
regh();
regalm();
enable_interrupts(int_ext);
ext_int_edge(h_to_l);
sleep();
} |
|
|