for child

Fork of TRP105F_Spline by Akifumi Takahashi

TRP105FS_SPIWrapper.cpp

Committer:
tanaken0605
Date:
2017-10-24
Revision:
27:1f38ee841153
Parent:
26:062b89351253

File content as of revision 27:1f38ee841153:

#include "TRP105FS_SPIWrapper.h"

//
//  Make instance of static member
//
SPI
SPI_TRP105FS::spi(p11,p12,p13);  // mosi(out), miso(in), sclk(clock)

DigitalOut
SPI_TRP105FS::cs(p14);           // cs (the chip select signal)

//
//  For SPI, Define static method
//
int
SPI_TRP105FS::ADread(int channel)
{
    
    int command = ((13|(channel<<1))<<11) & 0x7fff;
        __disable_irq(); // 割り込み禁止
    cs=0;
    int resultbyte=spi.write(command) & 0x3ff;
    cs=1;
        __enable_irq(); // 割り込み許可
    return(resultbyte);
}

//
//  Define Constructor
//
SPI_TRP105FS::SPI_TRP105FS()
    :channel(0)
    ,nsample(5)
    ,trp(TRP105FS(nsample))
    ,filename("\0")
{}

SPI_TRP105FS::SPI_TRP105FS(unsigned int arg_ch)
    :channel(arg_ch)
    ,nsample(5)
    ,trp(TRP105FS(nsample))
    ,filename("\0")
{}

SPI_TRP105FS::SPI_TRP105FS(unsigned int arg_ns, unsigned int arg_ch)
    :channel(arg_ch)
    ,nsample(arg_ns)
    ,trp(TRP105FS(nsample))
    ,filename("\0")
{}

void
SPI_TRP105FS::setSample(unsigned short arg_x)
{
    trp.setSample(arg_x, (unsigned short)ADread(channel));
}

void
SPI_TRP105FS::calibrate()
{
    trp.calibrate();
}

unsigned short
SPI_TRP105FS::getDistance()
{
    return trp.getDistance((unsigned short)ADread(channel));
}

unsigned int
SPI_TRP105FS::getChannel()
{
    return channel;
}

unsigned int
SPI_TRP105FS::getNsample()
{
    return nsample;
}

#if defined(HAS_LOCAL_FILE_SYSTEM)
void
SPI_TRP105FS::savedata()
{
    if (filename[0] == '\0')
        sprintf(filename, "SENSOR%02d.SAV", channel);
    trp.saveSetting(filename);
}

void
SPI_TRP105FS::loaddata()
{
    if (filename[0] == '\0')
        sprintf(filename, "SENSOR%02d.SAV", channel);
    trp.loadSetting(filename);
}
void
SPI_TRP105FS::printCalibrationiLOG()
{
    char lfilename[13];
    
    sprintf(lfilename, "ADLOG%02d.TXT", channel);
    trp.printOutData(lfilename);
}
#endif