CMPS03 Compass HelloWorld Program

Dependencies:   mbed CMPS03

This program is an example of how to use the CMPS03 compass library.

People may also use the CMPS03 I2C library that can be found in Mbed component section.

Committer:
haarkon
Date:
Thu May 31 17:39:18 2018 +0000
Revision:
0:db5358403ca6
Child:
1:96861dcaec35
CMPS03 Test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
haarkon 0:db5358403ca6 1 #include "mbed.h"
haarkon 0:db5358403ca6 2
haarkon 0:db5358403ca6 3 Serial pc (PA_2, PA_3, 921600);
haarkon 0:db5358403ca6 4
haarkon 0:db5358403ca6 5 DigitalOut led1 (PA_5);
haarkon 0:db5358403ca6 6 DigitalOut led2 (PD_2);
haarkon 0:db5358403ca6 7 DigitalOut disquette (PA_12);
haarkon 0:db5358403ca6 8
haarkon 0:db5358403ca6 9 InterruptIn boussole (PC_4);
haarkon 0:db5358403ca6 10 Timer _tim;
haarkon 0:db5358403ca6 11
haarkon 0:db5358403ca6 12 long _startTime, _stopTime;
haarkon 0:db5358403ca6 13 double _pwmBearing;
haarkon 0:db5358403ca6 14
haarkon 0:db5358403ca6 15 void bRise(void)
haarkon 0:db5358403ca6 16 {
haarkon 0:db5358403ca6 17 _startTime = _tim.read_us();
haarkon 0:db5358403ca6 18 }
haarkon 0:db5358403ca6 19
haarkon 0:db5358403ca6 20 void bFall(void)
haarkon 0:db5358403ca6 21 {
haarkon 0:db5358403ca6 22
haarkon 0:db5358403ca6 23 _stopTime = _tim.read_us();
haarkon 0:db5358403ca6 24 _pwmBearing = ((double)((long)(_stopTime - _startTime) - 1000)/100.0);
haarkon 0:db5358403ca6 25 }
haarkon 0:db5358403ca6 26
haarkon 0:db5358403ca6 27
haarkon 0:db5358403ca6 28 int main()
haarkon 0:db5358403ca6 29 {
haarkon 0:db5358403ca6 30
haarkon 0:db5358403ca6 31 boussole.rise(&bRise);
haarkon 0:db5358403ca6 32 boussole.fall(&bFall);
haarkon 0:db5358403ca6 33 boussole.enable_irq();
haarkon 0:db5358403ca6 34 _tim.reset();
haarkon 0:db5358403ca6 35 _tim.start();
haarkon 0:db5358403ca6 36
haarkon 0:db5358403ca6 37 pc.printf ("\nHelloWorld\n\r");
haarkon 0:db5358403ca6 38 led1 = 1;
haarkon 0:db5358403ca6 39 led2 = 0;
haarkon 0:db5358403ca6 40 disquette = 0;
haarkon 0:db5358403ca6 41
haarkon 0:db5358403ca6 42 while(1) {
haarkon 0:db5358403ca6 43 pc.printf("\r%5.2lf\t %8X\t %8X",_pwmBearing, _startTime, _stopTime);
haarkon 0:db5358403ca6 44 led1 = !led1;
haarkon 0:db5358403ca6 45 led2 = !led2;
haarkon 0:db5358403ca6 46 wait (0.2);
haarkon 0:db5358403ca6 47 }
haarkon 0:db5358403ca6 48 }