Arduino bleibt "hängen" trotz mircosoft-free

Teil 3/3

Die RTC befehle (wobei die hälfte nicht benutzt aus meinem andern Projekt)

/*
RTC Funktionen zur Steuerung der RTC DS1308
 */
void TimeRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 3);
  ss= bcdToDec(Wire.receive() & 0x7f);
  mm= bcdToDec(Wire.receive());
  hh= bcdToDec(Wire.receive());

}

void HourRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x02);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  hh= bcdToDec(Wire.receive());
  //Serial.println("Stundenlesen");
}

void MinuteRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x01);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  mm= bcdToDec(Wire.receive());
  //Serial.println("Minutenlesen");
}

void SecondRead(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);               // Pointer auf Sekunden
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  ss=bcdToDec(Wire.receive() & 0x7f);
  //Serial.println("Sekundenlesen");
}

void RTC_Set(){
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(0x00);
  Wire.send(decToBcd(ss));    // 0 to bit 7 starts the clock
  Wire.send(decToBcd(mm));
  Wire.send(decToBcd(hh));      // If you want 12 hour am/pm you need to set
  Wire.endTransmission();
}

byte decToBcd(byte val)
{
  return ((val/10)<<4)+(val%10);
}

// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
  return ((val>>4)*10)+val%16;
}


void SaveByte(byte x,byte y){                       // Funktion SaveByte("Position","Daten") Daten in Byte Format
  Wire.begin();                                     // Start I2C Kommunikation
  Wire.beginTransmission(RTC_ADDRESS);              // Beginn Kommunikation auf  Adresse 0x68 
  Wire.send(x+7);                                // Speicher Register Adresse+0x07   
  Wire.send(y);                                     // zu Speicherndes Byte
  Wire.endTransmission();  
}

byte ReadByte(byte x){                             // Funktion ReadByte ("Position") Daten in Byte Format
  byte z;
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.send(x+7);
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS, 1);
  z=Wire.receive();
  return z;
}

Ich nutze die 0023 IDE weil mich die änderungen der 1.0 bzüglich I2C ankotzen. Ich kann nicht einefach 0x00 als Adresse angeben man muss das bei der 1.0 über ein zusätzliche Variable machen.
Ich habe sämtliche andeungen gemach und den Code soweit zusammenestrichen das ich von 10800bytes auf 9384bytes