for child

Fork of TRP105F_Spline by Akifumi Takahashi

Committer:
tanaken0605
Date:
Fri Oct 14 06:59:56 2016 +0000
Revision:
25:1dba430435cf
Parent:
23:772a9736ee59
small update

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