ich dacht das lesen der I/O's vom 8574 hätte bei mir geklappt.
fehler !!!
ich hatte zwar werte bekommen aber mich erst einmal nicht
weiter darum gekümmert.
heute wollte ich mich noch einmal mit dem lesen der ports vom 8574P
beschäftigen und habe mich dann doch etwas gewundert!

also erst mal mein code:
Code:
#include <stdlib.h>
#include <avr/io.h>
#include "i2cmaster.h"
#include "asuro.h"


#define Dev8574   0x40      // device address of PCF 8574, see datasheet

int main(void)
{

  unsigned char wert;

  int i;
    
  Init();                                    // init Asuro
  i2c_init();                                // init I2C interface

  
  while(1)
  {	    
 
   i2c_rep_start(Dev8574+I2C_READ);
   wert=i2c_readNak();
   i2c_stop();
 
	  char text1[6] =" ";
      itoa(wert, text1, 6);    
      SerWrite(text1, 6);
	  SerWrite("     x", 6);

	  SerWrite("\r\n", 2); // Zeilenvorschub 
		
	  for (i=0; i<200; i++){Sleep(155);}


  
  }
  return 0;
}
und damit erhalte ich folgende ausgabe:

alle offen = 1103
P0 auf 0 = 1102
P1 auf 0 = 1101
P2 auf 0 = 1055
P3 auf 0 = 1051
P4 auf 0 = 1035
P5 auf 0 = 1011
P6 auf 0 = 515
P7 auf 0 = 331

wer sieht was was ich nicht sehe (oder verstehe)