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