Alexandre Pirotte
/
AS5048
cc
Fork of AS5048 by
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include <as5048spi.h> 00003 #define PI 3.1415926 00004 00005 // The sensors connection are attached to pins 5-8 00006 As5048Spi sensor1(p5, p6, p7,1); 00007 00008 00009 Serial pc(USBTX, USBRX); // tx, rx 00010 float vitesse,delta_deg,tour_sec; 00011 int degrees_av,degrees; 00012 Timer delta_t; 00013 00014 00015 int main() { 00016 pc.baud(38400); 00017 delta_t.start(); 00018 while(1) { 00019 // 00020 const int* angles = sensor1.read_angle(); 00021 00022 int angle = angles[0]; 00023 00024 // The read angle returns the value returned over the SPI bus, including parity bit 00025 //pc.printf("Read result: %x\r\n", angle); 00026 00027 if( As5048Spi::parity_check(angle) ) 00028 { 00029 degrees = As5048Spi::degrees(angle)/100; 00030 pc.printf("deg=%d\n\r", degrees); 00031 // Convert range from 0 to 2^14-1 to 0 - 360 degrees 00032 /*degrees_av=degrees; 00033 degrees = As5048Spi::degrees(angle)/100; 00034 delta_deg=(degrees-degrees_av); 00035 if(delta_deg<0) 00036 { 00037 delta_deg=delta_deg+360; 00038 } 00039 tour_sec=((delta_deg)/delta_t.read())/(11*360); 00040 vitesse=tour_sec*5.9*PI; 00041 delta_t.reset(); 00042 //vitesse=vitesse/(6.283185*11); 00043 00044 pc.printf("vitesse=%0.2f m/sec \n\r",vitesse); 00045 00046 //pc.printf("Parity check succesfull.\r\n"); 00047 00048 //pc.printf("Angle: %i degrees\r\n", degrees );*/ 00049 } 00050 else 00051 { 00052 //pc.printf("Parity check failed.\r\n"); 00053 } 00054 00055 } 00056 } 00057
Generated on Wed Aug 10 2022 11:15:14 by 1.7.2