This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C123GE6PM:Sensorhub BoosterPack-- compdcm_mpu9150

Guru**** 2350610 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/620670/ccs-tm4c123ge6pm-sensorhub-boosterpack-----compdcm_mpu9150

器件型号:TM4C123GE6PM

工具/软件:Code Composer Studio

您好!

我正在使用示例代码 compdcm_mpu9150中已经完成的函数、并将函数 MPU9150DataAccelGetFloat (&g_sMPU9150Inst、pfAccel、pfAccel + 1、pfAccel + 2)放入其中;但中断使程序转到 FISR ();


我的问题是:

如何定义中断以使程序可设置并继续执行任务?

谢谢。


在这里、我将放置该部分的代码

静态 portTASK_function (CamposPruebaTask、pvParameters){
   param_camp_mag campo;
   float *pfAccel,*pfGyro,*pfMag,*pfEulers;
   int ui32CompDCMStarted=0;



   while (1)
   {

       //
       //清除标志
       //
       G_vui8I2CDoneFlag = 0;



       //
       //获取以 m/s^2为单位的 Accel 数据的浮点版本。
       //
       MPU9150DataAccelGetFloat (&g_sMPU9150Inst、pfAccel、pfAccel + 1、
                                pfAccel + 2);






       /*
        * Aqui tenemos los "supuestos" valores que será lo que habrá que suituir
        *
       float valor_1 = rand();
       float valor_2 = rand();
       float valor_3=rand();

       float valor_4 = rand();
       float valor_5=rand();

       Campo.mag_x = valor_1;
       Campo.mag_y = valor_2;
       Campo.mag_z = valor_3;

       Campo.phi = valor_4;
       Campo.Teta = valor_5;


           xQueueSend (cola_calibration、&campo、0);//enamos los datos para hacerle la correction


       vTaskDelay (100);
   }


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Carlos:
    它可能与需要更多堆栈使用的浮点运算有关。 检查 CPU 故障状态寄存器以查看它是否与堆栈溢出相关。 尝试增加堆栈分配、看看它是否会产生影响。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    在创建任务时:

     if (xTaskCreate (CamposPruebaTask、"CamposPrueba"、512、NULL、tskIDLE_Priority + 1、NULL)!= pdTRUE)
                   {
                       while (1);
                   }

    在 CPU 使用方面、我可以检查:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Carlos、

    您是否修改了 startup_ccs.c 文件以正确指向您的 ISR? 这是命中 FaultISR 的主要原因之一。