OK ich poste nochmal den abgeänderten Code. Habe versucht das was von mir ist zu kommentieren.
Ich hab jetzt ausserdem mal alles unötige weggelassen, weil der LM75 ja im Templesemodus startet müsste ja eigentlich Leseadresse Senden + 2x Lesen ausreichen. Ich hab mir auch schon mehrere andere Codes die nicht für die C-Control sind angesehen, aber leider werde ich daraus auch nicht schlauer. Ich bekomme als Ausgabe einfach wild wechselde Zahlen

Code:
DEFINE Daten byte
define Zaehler byte
define N byte
define i byte
define Mask byte
define SDA port[15]
define SCL port[16]

SDA = OFF
SCL = OFF
gosub I2C_stop

#schleife
    gosub I2C_start
    Daten = 145              'Adresse(zum Lesen) schreiben
    gosub I2C_schreiben
    gosub I2C_lesen          'MSB Lesen
    gosub acknowlege
    print Daten;             'MSB Ausgeben
    Print "-";               '"MSB-LSB" (nur zum testen)

    gosub I2C_lesen          'LSB lesen
    gosub NoAcknoledgement
    print Daten;             'LSB ausgeben (schon klar das die Ausgabe
    print                    'von LSB nicht richtig ist aber ich teste ja nur)
    gosub I2C_stop
    pause 200
GoTo schleife

#I2C_start
  SDA = OFF
  SCL = OFF
  Return

#I2C_stop
  SDA = OFF
  SCL = ON
  SDA = ON
  Return

#I2C_schreiben
  Mask = &H80
  #OUTSHIFT
  SDA=(Daten and Mask)
  SCL = ON
  SCL = OFF
  Mask = Mask shr 1
  if Mask <> 0 then goto OUTSHIFT
  '---- 9. Takt für ACKN -------------------
  deact SDA
  SCL = ON
  SCL = OFF
  i = not SDA 'ackn?
  SDA= OFF
Return

#I2C_lesen
  deact SDA
  Daten = 0
  Mask = &H80
  #INSHIFT
  SCL = ON
  if SDA = ON then Daten = (Daten or Mask)
  SCL = OFF
  Mask = Mask shr 1
  if Mask <> 0 then goto INSHIFT
Return

#acknowlege
  SDA = OFF
  TOG SCL
  TOG SCL
Return

#NoAcknoledgement
  SDA = ON
  TOG SCL
  TOG SCL
Return

END