Akifumi Takahashi / TRP105F_Spline
Committer:
aktk
Date:
Mon Jun 06 19:49:20 2016 +0000
Revision:
11:d60fb729eacf
Parent:
8:9eaa9772e1e7
Child:
12:db5110d9d494
make it come to be platform variation selective

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aktk 8:9eaa9772e1e7 1 #include "TRP105FS_SPIWrapper.h"
aktk 11:d60fb729eacf 2 #include "CODE_SELECTIVE.h"
aktk 8:9eaa9772e1e7 3
aktk 8:9eaa9772e1e7 4 //
aktk 8:9eaa9772e1e7 5 // Make instance of static member
aktk 8:9eaa9772e1e7 6 //
aktk 11:d60fb729eacf 7 SPI
aktk 8:9eaa9772e1e7 8 SPI_TRP105FS::spi(p5, p6, p7); // mosi(out), miso(in), sclk(clock)
aktk 8:9eaa9772e1e7 9
aktk 8:9eaa9772e1e7 10 DigitalOut
aktk 8:9eaa9772e1e7 11 SPI_TRP105FS::cs(p8); // cs (the chip select signal)
aktk 8:9eaa9772e1e7 12
aktk 8:9eaa9772e1e7 13 //
aktk 8:9eaa9772e1e7 14 // For SPI, Define static method
aktk 8:9eaa9772e1e7 15 //
aktk 11:d60fb729eacf 16 int
aktk 8:9eaa9772e1e7 17 SPI_TRP105FS::ADread(int channel)
aktk 8:9eaa9772e1e7 18 {
aktk 8:9eaa9772e1e7 19 int command_high=0x06|((channel&0x04)>>2);
aktk 8:9eaa9772e1e7 20 int command_low=(channel&0x03)<<14;
aktk 8:9eaa9772e1e7 21 __disable_irq(); // 割り込み禁止
aktk 8:9eaa9772e1e7 22 cs = 0;
aktk 8:9eaa9772e1e7 23 spi.write(command_high);
aktk 8:9eaa9772e1e7 24 int resultbyte=spi.write(command_low) & 0xfff;
aktk 8:9eaa9772e1e7 25 cs = 1;
aktk 8:9eaa9772e1e7 26 __enable_irq(); // 割り込み許可
aktk 8:9eaa9772e1e7 27 return(resultbyte);
aktk 8:9eaa9772e1e7 28 }
aktk 8:9eaa9772e1e7 29
aktk 8:9eaa9772e1e7 30 //
aktk 8:9eaa9772e1e7 31 // Define Constructor
aktk 8:9eaa9772e1e7 32 //
aktk 8:9eaa9772e1e7 33 SPI_TRP105FS::SPI_TRP105FS()
aktk 8:9eaa9772e1e7 34 :channel(0)
aktk 8:9eaa9772e1e7 35 ,nsample(5)
aktk 8:9eaa9772e1e7 36 ,trp(TRP105FS(nsample))
aktk 8:9eaa9772e1e7 37 ,filename("\0")
aktk 8:9eaa9772e1e7 38 {}
aktk 8:9eaa9772e1e7 39
aktk 8:9eaa9772e1e7 40 SPI_TRP105FS::SPI_TRP105FS(unsigned int arg_ch)
aktk 8:9eaa9772e1e7 41 :channel(arg_ch)
aktk 8:9eaa9772e1e7 42 ,nsample(5)
aktk 8:9eaa9772e1e7 43 ,trp(TRP105FS(nsample))
aktk 8:9eaa9772e1e7 44 ,filename("\0")
aktk 8:9eaa9772e1e7 45 {}
aktk 8:9eaa9772e1e7 46
aktk 11:d60fb729eacf 47 void
aktk 8:9eaa9772e1e7 48 SPI_TRP105FS::setSample(unsigned short arg_x)
aktk 8:9eaa9772e1e7 49 {
aktk 8:9eaa9772e1e7 50 trp.setSample(arg_x, (unsigned short)ADread(channel));
aktk 8:9eaa9772e1e7 51 }
aktk 8:9eaa9772e1e7 52
aktk 11:d60fb729eacf 53 void
aktk 8:9eaa9772e1e7 54 SPI_TRP105FS::calibrate()
aktk 8:9eaa9772e1e7 55 {
aktk 8:9eaa9772e1e7 56 trp.calibrate();
aktk 8:9eaa9772e1e7 57 }
aktk 8:9eaa9772e1e7 58
aktk 11:d60fb729eacf 59 unsigned short
aktk 8:9eaa9772e1e7 60 SPI_TRP105FS::getDistance()
aktk 8:9eaa9772e1e7 61 {
aktk 8:9eaa9772e1e7 62 return trp.getDistance((unsigned short)ADread(channel));
aktk 8:9eaa9772e1e7 63 }
aktk 8:9eaa9772e1e7 64
aktk 11:d60fb729eacf 65 unsigned int
aktk 8:9eaa9772e1e7 66 SPI_TRP105FS::getChannel()
aktk 8:9eaa9772e1e7 67 {
aktk 8:9eaa9772e1e7 68 return channel;
aktk 8:9eaa9772e1e7 69 }
aktk 8:9eaa9772e1e7 70
aktk 11:d60fb729eacf 71 unsigned int
aktk 8:9eaa9772e1e7 72 SPI_TRP105FS::getNsample()
aktk 8:9eaa9772e1e7 73 {
aktk 8:9eaa9772e1e7 74 return nsample;
aktk 8:9eaa9772e1e7 75 }
aktk 8:9eaa9772e1e7 76
aktk 11:d60fb729eacf 77 void
aktk 8:9eaa9772e1e7 78 SPI_TRP105FS::savedata()
aktk 8:9eaa9772e1e7 79 {
aktk 8:9eaa9772e1e7 80 if (filename[0] == '\0')
aktk 8:9eaa9772e1e7 81 sprintf(filename, "SENSOR%02d.SAV", channel);
aktk 8:9eaa9772e1e7 82 trp.saveSetting(filename);
aktk 8:9eaa9772e1e7 83 }
aktk 8:9eaa9772e1e7 84
aktk 11:d60fb729eacf 85 void
aktk 8:9eaa9772e1e7 86 SPI_TRP105FS::loaddata()
aktk 8:9eaa9772e1e7 87 {
aktk 8:9eaa9772e1e7 88 if (filename[0] == '\0')
aktk 8:9eaa9772e1e7 89 sprintf(filename, "SENSOR%02d.SAV", channel);
aktk 8:9eaa9772e1e7 90 trp.loadSetting(filename);
aktk 8:9eaa9772e1e7 91 }
aktk 11:d60fb729eacf 92 void
aktk 8:9eaa9772e1e7 93 SPI_TRP105FS::printCalibrationiLOG()
aktk 8:9eaa9772e1e7 94 {
aktk 8:9eaa9772e1e7 95 trp.printOutData("ADLOG.TXT");
aktk 11:d60fb729eacf 96 #if defined(HAS_COM_TO_CONSOLE)
aktk 8:9eaa9772e1e7 97 trp.printThresholds();
aktk 11:d60fb729eacf 98 #endif
aktk 8:9eaa9772e1e7 99 }