Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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
   }
}