i2c acknowledge signal
HejJeg har problemer med at sende et ACK signal fra master til slave. Efter at master har modtaget en byte vil jeg gerne sende et ACK signal til min eeprom for at indikere at jeg gerne vil have en byte mere.
Jeg kan dog ikke få det at sende ACK signal til at virke, i vært fald modtager jeg ikke byte nr. 2
unsigned char readDataACK(void)
{
unsigned char readDataIn;
int k = SDATA; // Put data pin into read mode
readDataIn = 0x00;
for(k = 0; k < 8; k++) // read 8 bits from the I2C Bus
{
SCLK = HIGH; // Clock the data into the I2C Bus
SCLK = HIGH; // Clock the data into the I2C Bus
readDataIn <<= 1; // Shift the byte left by one bit
readDataIn |= SDATA; // Input the data from the I2C Bus |= bitvis tilføjelse
SCLK = LOW;
SCLK = LOW;
}
// "0" ACK Signal to eeprom
SDATA = LOW;
SCLK = HIGH;
SCLK = HIGH;
SCLK = LOW;
SCLK = LOW;
k=SDATA; //pin into HiZ
return readDataIn;
}
Hvad er det jeg gør galt her?