Kenta Tanabe / TRP105F_Spline_for_child

Fork of TRP105F_Spline by Akifumi Takahashi

Committer:
aktk
Date:
Thu Jun 30 17:41:14 2016 +0000
Revision:
22:eaaaa42a0ccb
Parent:
19:ee2558b13570
Child:
23:772a9736ee59
The filename that SPT::TRP105FS::printCalibrationLOG() makes has become ADLOG%2d.TXT.

Who changed what in which revision?

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