First experiment with mbed

Dependencies:   mbed

Fork of HelloWorld by Simon Ford

Committer:
Belesiu
Date:
Fri Dec 26 21:27:32 2014 +0000
Revision:
2:0aa9f1870ec1
Parent:
0:fb6bbc10ffa0
First experiment with mbed.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Belesiu 2:0aa9f1870ec1 1 // Ultra Sonice Range Finder
Belesiu 2:0aa9f1870ec1 2 // Experiement #1
Belesiu 2:0aa9f1870ec1 3 // Belesiu
Belesiu 2:0aa9f1870ec1 4 // 2014.12.26
Belesiu 2:0aa9f1870ec1 5
simon 0:fb6bbc10ffa0 6 #include "mbed.h"
simon 0:fb6bbc10ffa0 7
simon 0:fb6bbc10ffa0 8 DigitalOut myled(LED1);
simon 0:fb6bbc10ffa0 9
Belesiu 2:0aa9f1870ec1 10 I2C rangefinder(p9, p10); // sda, sc1
Belesiu 2:0aa9f1870ec1 11 Serial pc(USBTX, USBRX); // tx, rx
Belesiu 2:0aa9f1870ec1 12
Belesiu 2:0aa9f1870ec1 13 const int addr = 0xE0;
Belesiu 2:0aa9f1870ec1 14 char config_r[2];
Belesiu 2:0aa9f1870ec1 15 char range_read[2];
Belesiu 2:0aa9f1870ec1 16 float range;
Belesiu 2:0aa9f1870ec1 17
Belesiu 2:0aa9f1870ec1 18 int main()
Belesiu 2:0aa9f1870ec1 19 {
Belesiu 2:0aa9f1870ec1 20 int x = 0;
Belesiu 2:0aa9f1870ec1 21
simon 0:fb6bbc10ffa0 22 while(1) {
Belesiu 2:0aa9f1870ec1 23
Belesiu 2:0aa9f1870ec1 24 // Test serial port
simon 0:fb6bbc10ffa0 25 myled = 1;
simon 0:fb6bbc10ffa0 26 wait(0.2);
simon 0:fb6bbc10ffa0 27 myled = 0;
simon 0:fb6bbc10ffa0 28 wait(0.2);
Belesiu 2:0aa9f1870ec1 29 pc.printf("Hello Jim! - %d\n", x++);
Belesiu 2:0aa9f1870ec1 30
Belesiu 2:0aa9f1870ec1 31 // For MB7040
Belesiu 2:0aa9f1870ec1 32
Belesiu 2:0aa9f1870ec1 33 config_r[0] = 0x00; // set pointer reg to ‘cmd register'
Belesiu 2:0aa9f1870ec1 34 config_r[1] = 0x51; // config data byte1
Belesiu 2:0aa9f1870ec1 35 rangefinder.write(addr, config_r, 2);
Belesiu 2:0aa9f1870ec1 36 wait(0.07);
Belesiu 2:0aa9f1870ec1 37
Belesiu 2:0aa9f1870ec1 38 config_r[0] = 0x02; //set pointer reg to 'data register'
Belesiu 2:0aa9f1870ec1 39 rangefinder.write(addr, config_r, 1); //send to pointer 'read range'
Belesiu 2:0aa9f1870ec1 40 rangefinder.read(addr, range_read, 2); //read the two-byte range data
Belesiu 2:0aa9f1870ec1 41 range = ((range_read[0] << 8) + range_read[1]);
Belesiu 2:0aa9f1870ec1 42
Belesiu 2:0aa9f1870ec1 43 pc.printf("Range = %.2f cm\n\r", range); //print range on screen
Belesiu 2:0aa9f1870ec1 44 wait(0.05);
Belesiu 2:0aa9f1870ec1 45
simon 0:fb6bbc10ffa0 46 }
simon 0:fb6bbc10ffa0 47 }