lhiggs CSUM
/
UM6_IMU_AHRS_2012
Communication program for the chrobotics UM6 9-DOF IMU AHRS.
main.cpp
- Committer:
- lhiggs
- Date:
- 2012-09-28
- Revision:
- 0:03c649c76388
File content as of revision 0:03c649c76388:
#include "mbed.h" // MBED LIBRARY #include "MODSERIAL.h" // MBED BUFFERED SERIAL #include "UM6_usart.h" // UM6 USART HEADER #include "UM6_config.h" // UM6 CONFIG HEADER ///////////////////////////////////////////////////////////////////////////////////////////// // SETUP (ASSIGN) SERIAL COMMUNICATION PINS ON MBED ///////////////////////////////////////////////////////////////////////////////////////////// MODSERIAL pc(USBTX, USBRX); // PC SERIAL OVER USB PORT ON MBED //////////////////////////////////////////////////////////////////////////////////////////////// // SETUP (ASSIGN) MBED LED (1 thru 3) FOR VISUAL DEBUGGING ON MBED //////////////////////////////////////////////////////////////////////////////////////////////// DigitalOut pc_activity(LED1); // LED1 = PC SERIAL DigitalOut uart_activity(LED2); // LED2 = UM6 SERIAL void rxCallback(MODSERIAL_IRQ_INFO *q) { if (um6_uart.rxBufferGetCount() >= MAX_PACKET_DATA) { uart_activity = !uart_activity; // Lights LED when uart RxBuff has > 40 bytes Process_um6_packet(); } } int main() { ///////////////////////////////////////////////////////////////////////////////////////////////////// // SET SERIAL UART BAUD RATES ///////////////////////////////////////////////////////////////////////////////////////////////////// // set UM6 serial uart baud 9600 um6_uart.baud(9600); pc.baud(9600); // pc baud for UM6 to pc interface // attach interupt function to uart um6_uart.attach(&rxCallback, MODSERIAL::RxIrq); int Roll_Counter = 0; while (1) { Roll_Counter++; if (Roll_Counter > 5000000) { pc.printf("Gyro_Proc_X %f deg/s, ",data.Gyro_Proc_X); pc.printf("Gyro_Proc_Y %f deg/s, ",data.Gyro_Proc_Y); pc.printf("Gyro_Proc_Z %f deg/s, ",data.Gyro_Proc_Z); pc.printf("Roll %f deg, ",data.Roll); pc.printf("Pitch %f deg, ",data.Pitch); pc.printf("Yaw %f deg \r\n",data.Yaw); pc_activity = !pc_activity; // Lights LED when uart RxBuff has > 40 bytes Roll_Counter = 0; } } // end while(1) loop } // end main()