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.

[参考译文] MSPM0C1104:观察到 delay_cycles () 函数的可变时间。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598627/mspm0c1104-variable-time-for-the-delay_cycles-function-observed

器件型号: MSPM0C1104

尊敬的先生:

 

有关传感器 (ADC) 代码迟滞环路的以下问题、请提供帮助。

以下代码在 LaunchPad 上运行良好。但转储在应用板上的 8 引脚 MCU 上的相同代码发现有时工作、有时无法正常工作。

此外、DELAY_CYCLES (100) 每次提供相同的延迟。

 

包含“ti_msp_dl_config.h"</s>“

Volatile bool gCheckADC;
易失性 uint16_t gAdcResult;
Volatile int16_t gADCOffset;
bool LED = false;
易失性 uint16_t gCounterutp;
易失性 uint16_t gCounterltp;


内部 main (void)
{   

  delay_cycles (100);
  SYSCFG_DL_init ();
  gCheckADC = false;
  gCounterutp = 0;
  gCounterltp = 0;
  DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
  gCounterltp = 0;

  /*获得校准后的 ADC 偏移量 — ADC_ERR_09 的权变措施*/
  gADCOffset =
    DL_ADC12_getADCOffsetCalibration (ADC12_0_ADCMEM_0_REF_VOLTAGE_V);

  NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);

  while (1)
   {
   DL_ADC12_startConversion (ADC12_0_INST);

   while (false == gCheckADC){
    __ WFE ();
   }

   gAdcResult = DL_ADC12_getMemResult (ADC12_0_INST、DL_ADC12_MEM_IDX_0);

   IF (gAdcResult < 0x1E)//96mv //30 ADC 值
   {
    
    if (gCounterutp == 0x03){
     DL_GPIO_clearPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);// LAMP 开启
     DL_GPIO_clearPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);// LAMP 开启
     gCounterutp = 0;
    }其他{
     delay_cycles (12000000 * 8);// 12000000 //1505000 // 2 秒取消交易
     gCounterltp = 0;
     gCounterutp++;
    }  
    gCheckADC = false;
    DL_ADC12_enableConversions (ADC12_0_INST);
   }

否则{
    IF (gAdcResult > 0xE6)// 25//37d//740mv 230 ADC 值
    {
     如果 (gCounterltp == 0x03){
      DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
      DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
      gCounterltp = 0;

     }其他{
      DELAY_CYCLES (12000000 * 8);// 12000000 //1505000
      gCounterutp = 0;
      gCounterltp++;
     }
     gCheckADC = false;
     DL_ADC12_enableConversions (ADC12_0_INST);
    }
   }
  }
}

void ADC12_0_INST_IRQHandler (void){
 开关 (DL_ADC12_getPendingInterrupt (ADC12_0_INST)){
 用例 DL_ADC12_IIDX_MEM0_RESULT_LOADED:
  gCheckADC = true;
  休息;
 默认值:
  休息;
 }
}

 

 

 

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

    尊敬的 Seema:

    使用 delay_cycles () 函数时、您观察到的差异有多大?

    由于该应用程序在 LaunchPad 上工作、但在您的定制电路板上工作、因此您能否分享您的原理图?

    此致、

    Owen

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

    预期延迟为 4 秒、但延迟 为 10-12 秒

    想要发送原理图如何连接!

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

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

    请提供具有电源开关电路的 MCU 布局指南

    我们观察到代码在调试模式下运行正常、但如果我们进行闪存、则无法正常工作、请提供帮助

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

    尊敬的 Seema:

    您如何衡量延迟为 10-12 秒?

    此外、当您说它不起作用时、您的意思是什么? 是否有特定功能无法正常工作? 你怎么知道它不起作用?

    最好将原理图发送给当地技术销售代表或现场应用工程师。 他们将能够将其发送给 MSP 团队。 在您发送给他们的原理图中、请包含电阻器、电容器等的值  也请提及您在电子邮件中观察到的行为。

    以下是 MSPM0 C 系列 MCU 硬件开发指南、该指南可能提供了有关设计选择的有用信息

    此致、

    Owen