示例#1
0
/* Sends the JAviator data to the Gumstix
*/
void send_javiator_data( void )
{
    uint8_t data[ JAVIATOR_LDAT_SIZE ];

//////////////////////////////////////////////////////////////////////////
    javiator_data.id = motor_signals.id;
//////////////////////////////////////////////////////////////////////////

    /* encode JAviator data */
	javiator_ldat_to_stream( &javiator_data, data, JAVIATOR_LDAT_SIZE );

    /* transmit JAviator data */
	serial_send_data( COMM_JAVIATOR_DATA, data, JAVIATOR_LDAT_SIZE );

//////////////////////////////////////////////////////////////////////////
    javiator_data.state = 0;
//////////////////////////////////////////////////////////////////////////

#if 0
    /* increment motor signals ID before being sent on round trip */
    ++motor_signals.id;

    /* encode motor signals ID and enable-sensors flag, which
       corresponds to the inverted shut-down flag */
    data[0] = (uint8_t)( motor_signals.id >> 8 );
    data[1] = (uint8_t)( motor_signals.id );
    data[2] = (uint8_t)( !flag_shut_down );

    /* request new sensor data */
    parallel_send_data( COMM_SENSOR_DATA, data, 3 );
#endif
    /* request new IMU data */
    dm3gx1_request( );

    /* convert battery data */
    adc_convert( ADC_CH_BATT );
}
int main(void)
{
	
	serial_initialise();

	button_t button_1 = debounce_init("PB0");
	button_t button_2 = debounce_init("PB2");
	
	button_auto_acknowledge(button_2);
	
	sei();

	serial_send_data("Off we go\r\n");
	
    while (1) 
    {

		if(button_check(button_1) == BUTTON_PRESS_SHORT) {
			serial_send_data("Button 1 short");
			button_acknowledge(button_1);
		}

		if(button_check(button_1) == BUTTON_PRESS_LONG) {
			serial_send_data("Button 1 long");
			button_acknowledge(button_1);
		}
		
		switch (button_check(button_2)) {
			case BUTTON_PRESS_SHORT:	
				serial_send_data("Button 2 short");
				break;

			case BUTTON_PRESS_LONG:
				serial_send_data("Button 2 long");
				break;
		}
		
		_delay_ms(200);

		serial_send_data("Canary\r\n");

 }
}