Witajcie ponownie. Słuchajcie mam nietypowy problem z I2C. W bascomie napisalem program i jest ok zapisuje dane do pamieci. Problem mam w jezyku c. ponizej podaje procedury z jakich korzystam, mam je z roznych zrodel i nie widzę błędu, o co może chodzić, acha próbuje zapisać do pamięci 24c04.
void delayi2c(void)
{
asm{0x00};
asm{0x00};
}
void i2c_start(void) //Inicjacja magistrali Start I2C
{
sda=scl=1;
delayi2c();
sda=0;
delayi2c();
scl=0;
}
bit i2c_stop(void) //Wysłanie sekwencji Stop na I2C
{
sda=0;
delayi2c();
scl=1;
delayi2c();
sda=1;
delayi2c();
return (~sda);
}
bit i2c_send(unsigned char byte) //Wysylanie bitu na magistralę I2C
{
unsigned char bitcount=9;
bit temp;
do
{
scl=0;
sda=byte&0x80;
byte=(byte<<1)+1;
delayi2c();
scl=1;
delayi2c();
}while(--bitcount);
temp=sda;
scl=0;
return(temp);
}
void main(void)
{
i2c_start();
i2c_send(0xA0);
i2c_send(0x00);
i2c_send(0xA2);
i2c_stop();
while(1);
}