Alexandre Pirotte
/
AS5048
cc
Fork of AS5048 by
Diff: main.cpp
- Revision:
- 5:6b4cee1dd258
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Mar 27 13:27:06 2018 +0000 @@ -0,0 +1,57 @@ +#include "mbed.h" +#include <as5048spi.h> +#define PI 3.1415926 + +// The sensors connection are attached to pins 5-8 +As5048Spi sensor1(p5, p6, p7,1); + + +Serial pc(USBTX, USBRX); // tx, rx +float vitesse,delta_deg,tour_sec; +int degrees_av,degrees; +Timer delta_t; + + +int main() { + pc.baud(38400); + delta_t.start(); + while(1) { + // + const int* angles = sensor1.read_angle(); + + int angle = angles[0]; + + // The read angle returns the value returned over the SPI bus, including parity bit + //pc.printf("Read result: %x\r\n", angle); + + if( As5048Spi::parity_check(angle) ) + { + degrees = As5048Spi::degrees(angle)/100; + pc.printf("deg=%d\n\r", degrees); + // Convert range from 0 to 2^14-1 to 0 - 360 degrees + /*degrees_av=degrees; + degrees = As5048Spi::degrees(angle)/100; + delta_deg=(degrees-degrees_av); + if(delta_deg<0) + { + delta_deg=delta_deg+360; + } + tour_sec=((delta_deg)/delta_t.read())/(11*360); + vitesse=tour_sec*5.9*PI; + delta_t.reset(); + //vitesse=vitesse/(6.283185*11); + + pc.printf("vitesse=%0.2f m/sec \n\r",vitesse); + + //pc.printf("Parity check succesfull.\r\n"); + + //pc.printf("Angle: %i degrees\r\n", degrees );*/ + } + else + { + //pc.printf("Parity check failed.\r\n"); + } + + } +} +