for child
Fork of TRP105F_Spline by
TRP105FS_SPIWrapper.cpp@25:1dba430435cf, 2016-10-14 (annotated)
- 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?
User | Revision | Line number | New 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 |