#include "7047.h"
#define AD0_READY  AD0.ADCSR.BIT.ADF

void InitSH(void)
{

    PFC.PECRL1.WORD=0;
    PFC.PECRL2.WORD=0;
    PFC.PEIORL.WORD=0xFFFF;//PE I/O 書き出しモード

    PFC.PACRL2.WORD=0;
    PFC.PAIORL.WORD=0xFFFF;

    PFC.PBCR1.BIT.PB5MD=0; //PB=出力
    PFC.PBCR2.BIT.PB5MD=0;
    PFC.PBCR1.WORD=0;
    PFC.PBIOR.WORD=0XFFFF;
    PFC.PDIORL.WORD=0xFFFF;

    MST.CR2.BIT._AD0=0; // without this setting,ADC wouldn't work!
    AD0.ADCR.BIT.ADST=0;
    AD0.ADCR.BYTE=0;
    AD0.ADCSR.BYTE=0;
    AD0.ADCR.BIT.CKS=0x3;
    AD0.ADCR.BIT.ADST=1; //start AD
}

inline unsigned short getAD(void)
{
    unsigned short moto_data;
    AD0.ADCR.BIT.ADST=0;
    moto_data=AD0.ADDR0.WORD;
    return (moto_data>>6);    //上位10ビットが有効
}

inline void putDA(short data)
{
    PE.DRL.WORD =~data;
    AD0.ADCSR.BIT.ADF=0;
    AD0.ADCR.BIT.ADST=1;
}
//-------------------------------------