void main(void) { //configuring P1OUT |= 0x04; // set P1.2 for debug P4DIR |= 0x20; // P4.5 as output (for debug) gina_init(); scheduler_init(); leds_init(); if (*(&eui64+3)==0x09) { // this is a GINA board (not a basestation) gyro_init(); large_range_accel_init(); magnetometer_init(); sensitive_accel_temperature_init(); } radio_init(); timer_init(); P1OUT &= ~0x04; // clear P1.2 for debug //check sensor configuration is right gyro_get_config(); large_range_accel_get_config(); magnetometer_get_config(); sensitive_accel_temperature_get_config(); //scheduler_push_task(ID_TASK_APPLICATION); scheduler_register_application_task(&task_application_imu_radio, 0, FALSE); scheduler_start(); }
void main(void) { WDTCTL = WDTPW + WDTHOLD; // disable watchdog timer BCSCTL1 = CALBC1_16MHZ; // MCLK at 16MHz DCOCTL = CALDCO_16MHZ; P1DIR |= 0x1E; // P1.1-4 as outputs (for debug) __enable_interrupt(); // global enable interrupts leds_init(); //configuring the large scale accelerometer //configuring the gyro if (*(&eui64+3)==0x09) { // this is a GINA board (not a basestation) i2c_init(); large_range_accel_init(); } //check configuration is right (break and use Watch window) large_range_accel_get_config(); //make continuous measurements while(1) { P1OUT ^= 0x02; // toggle P1.1 for debug large_range_accel_get_measurement(&(large_range_accel_data[0])); large_range_accel_x = (256*large_range_accel_data[0]+large_range_accel_data[1])>>3; large_range_accel_y = (256*large_range_accel_data[2]+large_range_accel_data[3])>>3; large_range_accel_z = (256*large_range_accel_data[4]+large_range_accel_data[5])>>3; leds_circular_shift(); __no_operation(); //useless, just for breakpoint } }