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.

[参考译文] RM48L952:执行时间计算

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/578917/rm48l952-execution-time-calculation

器件型号:RM48L952
主题中讨论的其他器件:HALCOGEN

如何计算执行以下功能所需的时间 - RM48套件。 我知道时钟频率为220Mhz、 周期约为4ns。 执行时间=周期*周期数

如何计算周期数

void expitr()

float k;

如果(VTE > 40)

VTE = 20;

O = VTE;//吸气期间的同时流速值

sciSend (scilinREG、1、(unsigned char*)"-");
y[0]=((int) o/100)%10 + 0x30;
y[1]=((int) o/10)%10 + 0x30;
y[2]=((int) o)%10 + 0x30;
y[3]=',';
sciSend (scilinREG、4、(unsigned char*)&y);
//sciSend (scilinREG、2、(unsigned char*)"\n\n");


//k = VTE*1000*(((float) 40-L12)/(float) 60);
//k = k/8;
k =VTE*10*(((float) 40-L12)/(float) 60);
k = k*2;

O = k;//最后
y[0]=((int) o/100)%10 + 0x30;
y[1]=((int) o/10)%10 + 0x30;
y[2]=((int) o)%10 + 0x30;
y[3]=',';
sciSend (scilinREG、4、(unsigned char*)&y);

如果(f2 < 4)

O = LP_AW;

其他

O = qqtot;

//o = LP_AW;//吸气期间气道中的瞬时压力值
y[0]=((int) o/100)%10 + 0x30;
y[1]=((int) o/10)%10 + 0x30;
y[2]=((int) o)%10 + 0x30;
y[3]=',';
sciSend (scilinREG、4、(unsigned char*)&y);
//sciSend (scilinREG、2、(unsigned char*)"\n\n");

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

    大家好、Manjunathan、

    Hercules 微控制器中有一个名为 PMU 的模块、可用于计算 CPU 周期。 HALCoGen 生成 sys_PMU.asm 文件、可通过在主文件中包含 sys_pmu.h 文件来使用该文件...

    我编写了一个简单的伪代码来说明使用情况。

    #include "sys_PMU.h"




    //这是 PMU 的一次性初始化和复位
    _pmuDisableCountersGlob_();
    _pmuResetCounters_();
    _pmuResetCyclCounter_();
    _pmuSetCountEvent_(pmuCOUNTER0、PMU_cycle_count);
    while (_pmuGetCycleCount_()!=0);
    _pmuEnableCountersGlob_();





    _pmuResetCounters_();
    _pmuStartCounter_(pmuCYCLE _计数器);

    CAN_Init( CAN_ConfigPtr );-->用于测量周期计数的函数或部分代码...

    _pmuStopCounter_(pmuCYCLE _计数器);
    CAN_ExecutionTicks =_pmuGetCyclCount _();
    CAN_ExecutimTIME =(CAN_ExecutionTicks/GCLK_FREQ);获取 CAN_Init 函数的时间(以微秒为单位)...





    _pmuResetCounters_();
    _pmuStartCounter_(pmuCYCLE _计数器);

    SPI_Init( SPI_ConfigPtr );-->用于测量周期计数的函数或部分代码...

    _pmuStopCounter_(pmuCYCLE _计数器);
    SPI_ExecutionTicks =_pmuGetCyclCount_();
    SPI_ExecutimeTime =(SPI_ExecutionTicks/GCLK_FREQ);获取 SPI_Init 函数的时间(以微秒为单位)...




    注:

    1) 1) GCLK_FREQ = CPU 时钟频率= 220 (在您的案例中)
    2) 2)该值应该足够好、但如果可以测量更精确的值、我们必须从总执行时间中减去_pmuStopCounter_所花费的时间

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

    非常感谢。 如果我有任何困难,我会回来的