// ワード(2バイト)単位でのシリアル通信ラッパ
// ビッグエンディアン(0x1234は0x12 0x34の順番で送受信する)

// バッファに溜まっているデータの数をワード単位で得る
int serialGetAvailableWordsNum(void) {
  return Serial.available()/2;
}

// 1ワード受信する
unsigned int serialReadOneWord(void) {
  int high=Serial.read();
  int low=Serial.read();
  return (((unsigned int)high)<<8)|((unsigned int)low);
}

// データが来るまで待機し、1ワード受信する
unsigned int serialReadOneWordBlock(void) {
  while(serialGetAvailableWordsNum()==0) {
    delay(1);
  }
  return serialReadOneWord();
}

// 1ワード送信する
void serialWriteOneWord(unsigned int w) {
  Serial.write((w>>8)&0xff);
  Serial.write(w&0xff);
}
