for child
Fork of TRP105F_Spline by
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