Пример #1
0
static void run_self_test(void)
{
    int result;
    long gyro[3], accel[3];

    result = mpu_run_self_test(gyro, accel);
    if (result == 0x7) {
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */
        float sens;
        unsigned short accel_sens;
        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);
		printf("setting bias succesfully ......\r\n");
    }
}
Пример #2
0
int mpulib_run_self_test(void) {
  long gyro[3], accel[3];
  if( mpu_run_self_test(gyro, accel) ) {
    /* Test passed: we can trust the gyro data here, 
     * so let's push it down to the DMP. */
    float sens;
    unsigned short accel_sens;
    mpu_get_gyro_sens(&sens);
    gyro[0] = (long)(gyro[0] * sens);
    gyro[1] = (long)(gyro[1] * sens);
    gyro[2] = (long)(gyro[2] * sens);
    dmp_set_gyro_bias(gyro);
    mpu_get_accel_sens(&accel_sens);
    accel[0] *= accel_sens;
    accel[1] *= accel_sens;
    accel[2] *= accel_sens;
    dmp_set_accel_bias(accel);
    printf("\nsetting bias succesfully ......\n");
    return 0;
  } else {
    printf("\nbias has not been modified ......\n");
    return -1;
  }

}
Пример #3
0
static void run_self_test(void)
{
    int result;
//    char test_packet[4] = {0};
    long gyro[3], accel[3];

    result = mpu_run_self_test(gyro, accel);
	if(result == 0) printf("self-test is executed succesfully ......\n");	//added by Damm Stanger
	if (result == 0x7) 
//	if(result == 0x03)	//Curently we don't have compass sensor so we don't need to test it Damm Stanger
		{
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */
        float sens;
        unsigned short accel_sens;
        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);
		printf("setting bias succesfully ......\n");
    }
	else
	{
		printf("bias has not been modified ......\n");
	}

}
Пример #4
0
static inline void run_self_test(void)
{
    int result;
    long gyro[3], accel[3];

    result = mpu_run_self_test(gyro, accel);
    if (result == 0x7) {
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */
        float sens;
        unsigned short accel_sens;
        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);
    }


    /* Report results. */  //#报告结果 改为N5110
    //test_packet[0] = 't';
    //test_packet[1] = result;
//    N5110_Set_XY(0,0);//#
//    N5110_Write_Char('T');
//    N5110_Write_Char(':');
//    N5110_Write_Char(result+48);
    //send_packet(PACKET_TYPE_MISC, test_packet);
}
Пример #5
0
void mpu6050_run_self_test(void)
{
    int rtn;
    long gyro[3], accel[3];
		float sens;
		unsigned short accel_sens;

    rtn = mpu_run_self_test(gyro, accel);
    if (rtn == 0x3) {
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */

        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);
			printf("\r\nSelf Test Passed!\r\n");
    }
}
Пример #6
0
void run_self_test(void)
{
	extern bool Update_10Hz;
    int result;
//    char test_packet[4] = {0};
    long gyro[3], accel[3];

    result = mpu_run_self_test(gyro, accel);
    if (result == 0x7)
	{
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */
        float sens;
        unsigned short accel_sens;
        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);
    }
	else
	{
		//PrintChar("bias has not been modified ......\n");
		while (1)
		{
			if(Update_10Hz)
			{
				Update_10Hz = false;
				GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_5, ~GPIOPinRead(GPIO_PORTE_BASE, GPIO_PIN_5) );
			}
		}
	}
}
Пример #7
0
bool MPUManager::__RunSelfTest()
{
	int result;
    long gyro[3], accel[3];
	int iSuccess = 0x01|0x02;
#ifdef AK89xx_SECONDARY
	iSuccess |= 0x04;
#endif

    result = mpu_run_self_test(gyro, accel);
    if (result == iSuccess) {
        /* Test passed. We can trust the gyro data here, so let's push it down
         * to the DMP.
         */
        float sens;
        unsigned short accel_sens;
        mpu_get_gyro_sens(&sens);
        gyro[0] = (long)(gyro[0] * sens);
        gyro[1] = (long)(gyro[1] * sens);
        gyro[2] = (long)(gyro[2] * sens);
        dmp_set_gyro_bias(gyro);
        mpu_get_accel_sens(&accel_sens);
        accel[0] *= accel_sens;
        accel[1] *= accel_sens;
        accel[2] *= accel_sens;
        dmp_set_accel_bias(accel);

		return true;
    }
	else
	{
#ifdef AK89xx_SECONDARY
		printf("Self test failed: gyro %s; accel %s; comp %s\n", (result&0x01)?"pass":"******", (result&0x02)?"pass":"******", (result&0x04)?"pass":"******" );
#else
		printf("Self test failed: gyro %s; accel %s\n", (result&0x01)?"pass":"******", (result&0x02)?"pass":"******" );
#endif
		return false;
	}
}