SSLM1 / Mbed 2 deprecated P-7100

Dependencies:   mbed

Committer:
sasakisho
Date:
Wed Jun 03 15:46:55 2020 +0000
Revision:
0:d024d4d62f2e
version0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sasakisho 0:d024d4d62f2e 1 /* ADコンバータであるMCP3204を使い,圧力センサP-7100からデータを取得するためのコード */
sasakisho 0:d024d4d62f2e 2
sasakisho 0:d024d4d62f2e 3 #include "mbed.h"
sasakisho 0:d024d4d62f2e 4
sasakisho 0:d024d4d62f2e 5 SPI spi(p5, p6, p7);
sasakisho 0:d024d4d62f2e 6 DigitalOut cs(p8);
sasakisho 0:d024d4d62f2e 7 Timer t;
sasakisho 0:d024d4d62f2e 8
sasakisho 0:d024d4d62f2e 9 Serial pc(USBTX, USBRX);
sasakisho 0:d024d4d62f2e 10
sasakisho 0:d024d4d62f2e 11 int main()
sasakisho 0:d024d4d62f2e 12 {
sasakisho 0:d024d4d62f2e 13 // ADC val
sasakisho 0:d024d4d62f2e 14 uint8_t high, low;
sasakisho 0:d024d4d62f2e 15 double value, v, tp;
sasakisho 0:d024d4d62f2e 16
sasakisho 0:d024d4d62f2e 17 //file val
sasakisho 0:d024d4d62f2e 18 int i = 0, j = 0, k = 1000;
sasakisho 0:d024d4d62f2e 19 double V[k], TP[k],T[k];
sasakisho 0:d024d4d62f2e 20
sasakisho 0:d024d4d62f2e 21 spi.format(7, 0);
sasakisho 0:d024d4d62f2e 22 spi.frequency(1000000);
sasakisho 0:d024d4d62f2e 23
sasakisho 0:d024d4d62f2e 24 pc.baud(460800);
sasakisho 0:d024d4d62f2e 25
sasakisho 0:d024d4d62f2e 26 pc.printf("start!\n");
sasakisho 0:d024d4d62f2e 27
sasakisho 0:d024d4d62f2e 28 t.start();
sasakisho 0:d024d4d62f2e 29
sasakisho 0:d024d4d62f2e 30 while(j < 20)
sasakisho 0:d024d4d62f2e 31 {
sasakisho 0:d024d4d62f2e 32
sasakisho 0:d024d4d62f2e 33 while(i < k)
sasakisho 0:d024d4d62f2e 34 {
sasakisho 0:d024d4d62f2e 35 cs = 0;
sasakisho 0:d024d4d62f2e 36
sasakisho 0:d024d4d62f2e 37 spi.write(0x60); //シングル
sasakisho 0:d024d4d62f2e 38 //spi.write(0x40); //差動
sasakisho 0:d024d4d62f2e 39
sasakisho 0:d024d4d62f2e 40 high = spi.write(0x00);
sasakisho 0:d024d4d62f2e 41 low = spi.write(0x00);
sasakisho 0:d024d4d62f2e 42
sasakisho 0:d024d4d62f2e 43 low = (high << 5) | (low >> 2);
sasakisho 0:d024d4d62f2e 44 high = high >> 3;
sasakisho 0:d024d4d62f2e 45
sasakisho 0:d024d4d62f2e 46 value = (high << 8) | low;
sasakisho 0:d024d4d62f2e 47
sasakisho 0:d024d4d62f2e 48 v = value / 4096 * 5.0;
sasakisho 0:d024d4d62f2e 49
sasakisho 0:d024d4d62f2e 50 tp = 0.25 * v - 0.125;
sasakisho 0:d024d4d62f2e 51
sasakisho 0:d024d4d62f2e 52 V[i] = v;
sasakisho 0:d024d4d62f2e 53 TP[i] = tp;
sasakisho 0:d024d4d62f2e 54 T[i] = t.read();
sasakisho 0:d024d4d62f2e 55
sasakisho 0:d024d4d62f2e 56 //pc.printf("sensor 0 value = %lf\n", value);
sasakisho 0:d024d4d62f2e 57
sasakisho 0:d024d4d62f2e 58 cs = 1;
sasakisho 0:d024d4d62f2e 59
sasakisho 0:d024d4d62f2e 60 i++;
sasakisho 0:d024d4d62f2e 61
sasakisho 0:d024d4d62f2e 62 wait(0.009);
sasakisho 0:d024d4d62f2e 63 }
sasakisho 0:d024d4d62f2e 64
sasakisho 0:d024d4d62f2e 65 i = 0;
sasakisho 0:d024d4d62f2e 66
sasakisho 0:d024d4d62f2e 67 while(i < k)
sasakisho 0:d024d4d62f2e 68 {
sasakisho 0:d024d4d62f2e 69 pc.printf("%f, %f, %f\n", T[i], V[i], TP[i]);
sasakisho 0:d024d4d62f2e 70
sasakisho 0:d024d4d62f2e 71 i++;
sasakisho 0:d024d4d62f2e 72 }
sasakisho 0:d024d4d62f2e 73
sasakisho 0:d024d4d62f2e 74 i = 0;
sasakisho 0:d024d4d62f2e 75
sasakisho 0:d024d4d62f2e 76 j++;
sasakisho 0:d024d4d62f2e 77
sasakisho 0:d024d4d62f2e 78 }
sasakisho 0:d024d4d62f2e 79
sasakisho 0:d024d4d62f2e 80 t.stop();
sasakisho 0:d024d4d62f2e 81
sasakisho 0:d024d4d62f2e 82 pc.printf("finish!");
sasakisho 0:d024d4d62f2e 83 }