Ejemplo n.º 1
0
void task_application_imu_radio(uint16_t input) {
   counter++;
   P1OUT ^= 0x02;                                // toggle P1.1 for debug
   P4OUT ^= 0x20;                                // toggle P4.5 for debug
   P1OUT |= 0x04;P1OUT &= ~0x04;                 // pulse P1.2 for debug
   if (counter==0) {
      leds_circular_shift();                     // circular shift LEDs for debug
   }
   //get RAM space for packet
   testImuRadiopacketToSend = openqueue_getFreePacketBuffer();
   //l1
   testImuRadiopacketToSend->l1_channel  = DEFAULTCHANNEL;
   //payload
   packetfunctions_reserveHeaderSize(testImuRadiopacketToSend,8);
   gyro_get_measurement(&(testImuRadiopacketToSend->payload[0]));
   P1OUT |= 0x04;P1OUT &= ~0x04;                 // pulse P1.2 for debug
   packetfunctions_reserveHeaderSize(testImuRadiopacketToSend,6);
   large_range_accel_get_measurement(&(testImuRadiopacketToSend->payload[0]));
   P1OUT |= 0x04;P1OUT &= ~0x04;                 // pulse P1.2 for debug
   packetfunctions_reserveHeaderSize(testImuRadiopacketToSend,6);
   magnetometer_get_measurement(&(testImuRadiopacketToSend->payload[0]));
   P1OUT |= 0x04;P1OUT &= ~0x04;                 // pulse P1.2 for debug
   packetfunctions_reserveHeaderSize(testImuRadiopacketToSend,10);
   sensitive_accel_temperature_get_measurement(&(testImuRadiopacketToSend->payload[0]));
   P1OUT |= 0x04;P1OUT &= ~0x04;                 // pulse P1.2 for debug
   packetfunctions_reserveFooterSize(testImuRadiopacketToSend,2);//space for radio to fill in CRC
   //send packet
   radio_send(testImuRadiopacketToSend);
}
Ejemplo 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
   }
}