ok. hatte heute einen schlechten tag und habe wieder einen ausgleich gesucht.
also den kleinen aus die kiste geholt, den rechner an und los.

mit folgendem prog habe ich die ersten erfolge:

Code:
#include <stdlib.h>
#include <avr/io.h>
#include "i2cmaster.h"
#include "asuro.h"


#define SRF02   0xE0      // device address 

int main(void)
{
  int i;
  unsigned char t1, t2;
    
  Init();                                    // init Asuro
  i2c_init();                                // init I2C interface

  while(1)
  {	    

	StatusLED(RED);
      for (i=0; i<200; i++)
      {Sleep(155);}
	StatusLED(GREEN);

	
	  i2c_start_wait(SRF02+I2C_WRITE); 
      i2c_write(0x00);
      i2c_write(0x51);
      i2c_stop();
	  for (i=0;i<90;i++){Sleep(72);}   // mind. 65 ms warten bis Lesebefehl
	
	  i2c_start_wait(SRF02+I2C_WRITE); 
      i2c_write(0x02);
      i2c_rep_start(SRF02+I2C_READ);
	  t1 = i2c_readNak();	
      i2c_stop();
	  
	  i2c_start_wait(SRF02+I2C_WRITE); 
      i2c_write(0x03);
      i2c_rep_start(SRF02+I2C_READ);
      t2 = i2c_readNak();	
      i2c_stop();


	  
      char text1[6] =" ";
      itoa(t1, text1, 6);    
      SerWrite(text1, 6);
	  
	  SerWrite("      ", 6);
	  
	  char text2[6] =" ";
      itoa(t2, text2, 6);    
      SerWrite(text2, 6);

  
      SerWrite("\r\n", 2); /* Zeilenvorschub */

  }
  return 0;
}
die messung wird gestartet und ich erhalte auch werte.
leider werte mit denen man noch nichts anfangen kann.
das high byte ist immer 0 egal wie weit ein objekt ist.
das low byte bringt mir werte größer 255.
1000 wurde mir auch angezeigt.
auf entfernungsänderungen reagiert das ganze. habe aber noch nichts nachgemessen.
für das low byte kommen werte wie:
bei kurzer entfernung so ca. 30 cm werte wie: 33; 34; 40 wäre ja super.
gehe ich dann aber nur ein wenig weiter kommt gleich 133;122;414..
gehe ich wieder einige cm weiter 50;51...
vielleicht fällt ja jemandem schon etwas ein.
jetzt reichts mir erst einmal. kiste auf, den kleinen rein. morgen ist auch noch ein tag.