Moin,

hm gleich mein erster post ist eine Frage. Ist vieleicht nicht die feine englische Art, aber das hol ich wieder auf

Ich probiere gerade an dem ATmega8 einen PCF8574 laufen zu lassen. Dazu habe ich mit diversen Quellen folgendes hinbekommen.
Nur leider kommt da nichts an beim PCF8574 an. Habe mal mit einem Oszilloskop den I2C bus angeschaut. Da geht nichts drüber. Also vermute ich mal auf einen Softwarefehler.

seht ihr den Bock hier im Quellcode ? Würde mich über ein paar Tips sehr freuen.

lg Henning
Code:
#include<util/delay.h>


int sendByte(unsigned char datenbyte, unsigned char adresse)
{
  DDRC &= !((1<<DD4)|(1<<DD5));
  PORTC = (1<<DD4)|(1<<DD5);

  TWCR = ((1<<TWINT)|(1<<TWSTA)|(1<<TWEN));    //TWI aktivieren und Start auslösen
  while(!(TWCR & (1<<TWINT)));          // warten auf Start


  TWDR = adresse & (0x40);            // Adresse und Schreibbit ins Datenregister
  TWCR = ((1<<TWINT)|(1<<TWEN));          // senden ...
  while(!(TWCR & (1<<TWINT)));


  TWDR=datenbyte;                  // Byte ins Datenregister
  TWCR = ((1<<TWINT)|(1<<TWEN));          // senden ...
  while(!(TWCR& (1<<TWINT)));            


  TWCR = ((1<<TWINT)|(1<<TWSTO)|(1<<TWEN));    // Stop
  return 1;
}



void main (void)
{
  unsigned char i;
  i=0x01;
  while(1)
  {
    if(i==0x80) i=0x01;
    else i<<=1;

    _delay_ms(150);

    sendByte(i,0);
  }
}