#include <stdint.h>
#include "pickle.h"                // SYS function prototypes
// ワード(2バイト)単位でのシリアル通信ラッパ
// ビッグエンディアン(0x1234は0x12 0x34の順番で送受信する)

// バッファに溜まっているデータの数をワード単位で得る
// データが来るまで待機し、1ワード受信する
unsigned int serialReadOneWordBlock(void) {
    uint8_t rdBuf[2];
    uint8_t buf[2];
     int count = 0;
    
    while(count<2){
        if (!UART1_Read(&rdBuf, 1)) continue;
        buf[count]=rdBuf[0];
        count++;
    }
    
    return (((unsigned int)buf[0])<<8)|((unsigned int)buf[1]);
}

// 1ワード送信する
void serialWriteOneWord(unsigned int w) {
    bool success = false;
    uint8_t buf[3];

    buf[0]=(w>>8)&0xff;
    buf[1]=w&0xff;
    buf[2]='\0';
    
    do
    {
        success = UART1_Write(buf, strlen(buf));
    }while( !success);
    while (UART1_WriteCountGet()>0);  //これが無いとUART1_Writeが後の処理まで尾を引き、bufが壊れる。
}
