test

Dependencies:   mbed MMA8452Q

Fork of HelloWorld by Simon Ford

Committer:
vincentlabbe
Date:
Thu Aug 31 16:52:41 2017 +0000
Revision:
16:0b58c14b639d
Parent:
15:b4b2e73faefb
Child:
17:c463c5a434ec
fonctionne : calcul accel ancien et display mauvais ordre

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kkalsi 6:62e39c103d12 1 #include "mbed.h"
kkalsi 9:f36f1506a840 2 #include "MMA8452Q.h"
kkalsi 7:32229ffff57e 3
kkalsi 2:42408ce8f4ae 4 Serial pc(USBTX, USBRX); // tx, rx
kkalsi 10:386a3a12f3cf 5 SPI accel(p11,p12,p13);
kkalsi 10:386a3a12f3cf 6 DigitalOut cs(p14);
kkalsi 10:386a3a12f3cf 7 // Communication I2C
kkalsi 9:f36f1506a840 8 //I2C comI2C(p9,p10); // sda, scl
kkalsi 10:386a3a12f3cf 9
kkalsi 3:8494c3f7108d 10 int main() {
kkalsi 6:62e39c103d12 11
kkalsi 15:b4b2e73faefb 12 //float x, y, z ;
kkalsi 9:f36f1506a840 13
kkalsi 15:b4b2e73faefb 14 MMA8452Q acc(p9,p10,0x1d); // acceleration object
kkalsi 9:f36f1506a840 15
vincentlabbe 16:0b58c14b639d 16 //while (true) {
kkalsi 15:b4b2e73faefb 17 // x = acc.getAccX() ;
kkalsi 15:b4b2e73faefb 18 // y = acc.getAccY() ;
kkalsi 15:b4b2e73faefb 19 // z = acc.getAccZ() ;
vincentlabbe 13:64137db317ab 20 // printf("X[%.2f] Y[%.2f] Z[%.2f]\n",x, y, z) ;
kkalsi 9:f36f1506a840 21 wait(0.1);
vincentlabbe 13:64137db317ab 22
vincentlabbe 16:0b58c14b639d 23 // float angle = ((2*x*x+2*y*y)/(x*x+y*y+z*z))+1;
vincentlabbe 16:0b58c14b639d 24
vincentlabbe 13:64137db317ab 25 float resultat = (3.14/2.0) -( z + (z *z * z)/6.0 + (3*z*z*z*z*z)/40.0);
kkalsi 15:b4b2e73faefb 26 pc.printf("valeur rad = %f", resultat);
kkalsi 15:b4b2e73faefb 27 float degree = resultat * 18000.0/314.0;
kkalsi 15:b4b2e73faefb 28 pc.printf("valeur deg = %f", degree);
kkalsi 15:b4b2e73faefb 29 degree = degree * 10;
kkalsi 15:b4b2e73faefb 30 int degreInt = (int)degree;
kkalsi 15:b4b2e73faefb 31 pc.printf("valeur deg = %d", degreInt);
kkalsi 15:b4b2e73faefb 32
vincentlabbe 16:0b58c14b639d 33 int rep;
kkalsi 15:b4b2e73faefb 34 // extracting digits
vincentlabbe 16:0b58c14b639d 35 int digits[4] = {0,0,0,0};
kkalsi 15:b4b2e73faefb 36 int i = 0;
kkalsi 15:b4b2e73faefb 37 while(degreInt > 0) {
vincentlabbe 16:0b58c14b639d 38 rep = degreInt % 10; //to get the right most digit
vincentlabbe 16:0b58c14b639d 39 digits[i]=rep;
vincentlabbe 16:0b58c14b639d 40 pc.printf("digit %d = %d, degree int: %d", i, digits[i], degreInt);
kkalsi 15:b4b2e73faefb 41 degreInt /= 10; //reduce the number by one digit
kkalsi 15:b4b2e73faefb 42 ++i;
kkalsi 15:b4b2e73faefb 43 }
kkalsi 15:b4b2e73faefb 44 //digits[i]='\0' //terminate the string
kkalsi 15:b4b2e73faefb 45
kkalsi 10:386a3a12f3cf 46
vincentlabbe 13:64137db317ab 47
vincentlabbe 16:0b58c14b639d 48
kkalsi 10:386a3a12f3cf 49 cs = 0;
vincentlabbe 16:0b58c14b639d 50 accel.write(digits[3]);
vincentlabbe 16:0b58c14b639d 51 cs = 1;
vincentlabbe 16:0b58c14b639d 52 wait(2);
vincentlabbe 16:0b58c14b639d 53 cs = 0;
vincentlabbe 16:0b58c14b639d 54 accel.write(digits[2]);
kkalsi 10:386a3a12f3cf 55 cs = 1;
vincentlabbe 16:0b58c14b639d 56 wait(2);
vincentlabbe 16:0b58c14b639d 57 cs = 0;
vincentlabbe 16:0b58c14b639d 58 accel.write(digits[1]);
vincentlabbe 16:0b58c14b639d 59 cs = 1;
vincentlabbe 16:0b58c14b639d 60 wait(2);
vincentlabbe 16:0b58c14b639d 61 cs = 0;
vincentlabbe 16:0b58c14b639d 62 accel.write(digits[0]);
vincentlabbe 16:0b58c14b639d 63 cs = 1;
vincentlabbe 16:0b58c14b639d 64 wait(2);
kkalsi 10:386a3a12f3cf 65 wait(1);
vincentlabbe 16:0b58c14b639d 66
kkalsi 3:8494c3f7108d 67 }
kkalsi 3:8494c3f7108d 68
kkalsi 3:8494c3f7108d 69
kkalsi 3:8494c3f7108d 70 /* communication SPI
kkalsi 3:8494c3f7108d 71 Serial pc(USBTX, USBRX); // tx, rx
kkalsi 2:42408ce8f4ae 72 SPI acc(p11,p12,p13);
kkalsi 2:42408ce8f4ae 73 DigitalOut cs(p14);
kkalsi 2:42408ce8f4ae 74 int main() {
kkalsi 2:42408ce8f4ae 75 while(1){
kkalsi 2:42408ce8f4ae 76 int nombre = 0;
kkalsi 2:42408ce8f4ae 77 pc.printf("Entrez un nombre de 4 chiffres : ");
kkalsi 2:42408ce8f4ae 78 pc.scanf("%d", &nombre);
kkalsi 2:42408ce8f4ae 79 pc.printf("Votre numero entrez est le : %d", nombre);
kkalsi 2:42408ce8f4ae 80
kkalsi 2:42408ce8f4ae 81 cs = 0;
kkalsi 3:8494c3f7108d 82 acc.write(nombre);
kkalsi 2:42408ce8f4ae 83 cs = 1;
kkalsi 2:42408ce8f4ae 84 wait(0.2);
kkalsi 2:42408ce8f4ae 85 cs = 0;
kkalsi 2:42408ce8f4ae 86 wait(1);
kkalsi 2:42408ce8f4ae 87 }
kkalsi 3:8494c3f7108d 88 }*/
kkalsi 2:42408ce8f4ae 89 /*
kkalsi 2:42408ce8f4ae 90 Serial pc(USBTX, USBRX); // tx, rx
kkalsi 2:42408ce8f4ae 91 Serial mc(p13,p14);
kkalsi 2:42408ce8f4ae 92 int main() {
kkalsi 2:42408ce8f4ae 93
kkalsi 2:42408ce8f4ae 94 int nombre = 0;
kkalsi 2:42408ce8f4ae 95 pc.printf("Entrez un nombre de 4 chiffres : ");
kkalsi 2:42408ce8f4ae 96 pc.scanf("%d", &nombre);
kkalsi 2:42408ce8f4ae 97 pc.printf("Votre numero entrez est le : %d", nombre);
kkalsi 2:42408ce8f4ae 98 mc.printf(nombre);
kkalsi 2:42408ce8f4ae 99 }
kkalsi 2:42408ce8f4ae 100 */
simon 0:fb6bbc10ffa0 101
kkalsi 2:42408ce8f4ae 102
kkalsi 2:42408ce8f4ae 103 /*
kkalsi 2:42408ce8f4ae 104 DigitalOut myled(LED2);
simon 0:fb6bbc10ffa0 105
simon 0:fb6bbc10ffa0 106 int main() {
simon 0:fb6bbc10ffa0 107 while(1) {
simon 0:fb6bbc10ffa0 108 myled = 1;
simon 0:fb6bbc10ffa0 109 wait(0.2);
simon 0:fb6bbc10ffa0 110 myled = 0;
simon 0:fb6bbc10ffa0 111 wait(0.2);
simon 0:fb6bbc10ffa0 112 }
simon 0:fb6bbc10ffa0 113 }
kkalsi 2:42408ce8f4ae 114 */