Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TRP105FS_SPIWrapper.cpp@12:db5110d9d494, 2016-06-07 (annotated)
- Committer:
- aktk
- Date:
- Tue Jun 07 04:35:15 2016 +0000
- Revision:
- 12:db5110d9d494
- Parent:
- 11:d60fb729eacf
- Child:
- 16:c2b0f3ca63dd
void loadSetting_fromSerial(Serial) has been implemented.
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 |
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 | 11:d60fb729eacf | 46 | void |
aktk | 8:9eaa9772e1e7 | 47 | SPI_TRP105FS::setSample(unsigned short arg_x) |
aktk | 8:9eaa9772e1e7 | 48 | { |
aktk | 8:9eaa9772e1e7 | 49 | trp.setSample(arg_x, (unsigned short)ADread(channel)); |
aktk | 8:9eaa9772e1e7 | 50 | } |
aktk | 8:9eaa9772e1e7 | 51 | |
aktk | 11:d60fb729eacf | 52 | void |
aktk | 8:9eaa9772e1e7 | 53 | SPI_TRP105FS::calibrate() |
aktk | 8:9eaa9772e1e7 | 54 | { |
aktk | 8:9eaa9772e1e7 | 55 | trp.calibrate(); |
aktk | 8:9eaa9772e1e7 | 56 | } |
aktk | 8:9eaa9772e1e7 | 57 | |
aktk | 11:d60fb729eacf | 58 | unsigned short |
aktk | 8:9eaa9772e1e7 | 59 | SPI_TRP105FS::getDistance() |
aktk | 8:9eaa9772e1e7 | 60 | { |
aktk | 8:9eaa9772e1e7 | 61 | return trp.getDistance((unsigned short)ADread(channel)); |
aktk | 8:9eaa9772e1e7 | 62 | } |
aktk | 8:9eaa9772e1e7 | 63 | |
aktk | 11:d60fb729eacf | 64 | unsigned int |
aktk | 8:9eaa9772e1e7 | 65 | SPI_TRP105FS::getChannel() |
aktk | 8:9eaa9772e1e7 | 66 | { |
aktk | 8:9eaa9772e1e7 | 67 | return channel; |
aktk | 8:9eaa9772e1e7 | 68 | } |
aktk | 8:9eaa9772e1e7 | 69 | |
aktk | 11:d60fb729eacf | 70 | unsigned int |
aktk | 8:9eaa9772e1e7 | 71 | SPI_TRP105FS::getNsample() |
aktk | 8:9eaa9772e1e7 | 72 | { |
aktk | 8:9eaa9772e1e7 | 73 | return nsample; |
aktk | 8:9eaa9772e1e7 | 74 | } |
aktk | 8:9eaa9772e1e7 | 75 | |
aktk | 11:d60fb729eacf | 76 | void |
aktk | 8:9eaa9772e1e7 | 77 | SPI_TRP105FS::savedata() |
aktk | 8:9eaa9772e1e7 | 78 | { |
aktk | 8:9eaa9772e1e7 | 79 | if (filename[0] == '\0') |
aktk | 8:9eaa9772e1e7 | 80 | sprintf(filename, "SENSOR%02d.SAV", channel); |
aktk | 8:9eaa9772e1e7 | 81 | trp.saveSetting(filename); |
aktk | 8:9eaa9772e1e7 | 82 | } |
aktk | 8:9eaa9772e1e7 | 83 | |
aktk | 11:d60fb729eacf | 84 | void |
aktk | 8:9eaa9772e1e7 | 85 | SPI_TRP105FS::loaddata() |
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.loadSetting(filename); |
aktk | 8:9eaa9772e1e7 | 90 | } |
aktk | 11:d60fb729eacf | 91 | void |
aktk | 8:9eaa9772e1e7 | 92 | SPI_TRP105FS::printCalibrationiLOG() |
aktk | 8:9eaa9772e1e7 | 93 | { |
aktk | 8:9eaa9772e1e7 | 94 | trp.printOutData("ADLOG.TXT"); |
aktk | 8:9eaa9772e1e7 | 95 | } |