Beispiel #1
0
void writeValues() { 
  // Now comes the data  
  // First: Sync byte which does not work 
  buffer[0]; 
  buffer[1]; 

  // Now: Aileron 
  int ail = buffer[2] & 3; 
  ail = ail <<8; 
  ail += buffer[3]; 

  // now: Flaps 
  int flaps = buffer[4] & 3; 
  flaps = flaps <<8;     
  flaps +=buffer[5]; 

  // now: elevator 
  int elev = buffer[6] & 3; 
  elev = elev <<8; 
  elev += buffer[7]; 

  // now: Rudder 
  int rud = buffer[8] & 3; 
  rud = rud<<8; 
  rud+= buffer[9]; 

  // now: Throttle 
  // We need some extra work here because  
  // the DX6i sends its throttle data rather weird 
  int thro = 0; 
  if((buffer[10] & 128) == 128) { 
    thro = buffer[10]; 
  } 
  else { 
    thro = buffer[10] & 3; 
    thro = thro<<8; 
    thro+= buffer[11]; 
  } 
  // now: Gear 
  int gear = buffer[12] & 3; 
  gear = gear<<8; 
  gear+= buffer[13]; 

  throttlePin3.writeFine(thro); 
  rudderPin4.writeFine(rud); 
  elevatorPin5.writeFine(elev); 
  aileronPin6.writeFine(ail); 
  gearPin7.writeFine(gear); 
  flapsPin8.writeFine(flaps); 

  lastval = 255; 
}