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.

[参考译文] MSPM0-SDK:使用 MATHACL 的示例代码

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1444453/mspm0-sdk-example-code-for-using-the-mathacl

器件型号:MSPM0-SDK

工具与软件:

你(们)好

我们希望有一个将 MATHACL 用于平方根运算的代码示例。 遗憾的是、SDK 中没有示例。

你可以帮帮我吗?

THX

Vincenzo

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

    您好、Vincenzo、

    很抱歉、我们没有示例。 请参阅 TRM 并生成它。 以下是 TRM 上有关如何使用 MATHACL 的详细指南。

    此致、

    Janz Bai

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

    尊敬的 Janz Bai:

    非常多。 所以没有计划在 SDK 中制作少量示例、对吗?

    只是确定……

    THX

    Vincenzo

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

    您好、Vincenzo、

    我记得现在还没有计划在 SDK 中添加这个内容。

    此致、

    Janz Bai

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

    尊敬的 Janz Bai:

    我想知道计算一个简单数字(如9)的平方根的步骤。

    我尝试了以下方法、但它不起作用。 你能指出我做错了什么吗?

     

    MATHACL->CTL = MATHACL_CTL_FUNC_SQRT |//做平方根

                  MATHACL_CTL_OPTYPE_unsigned |//操作数无符号

                  MATHACL_CTL_QVAL_Q0;//无分数

    MATHACL->OP1 = 9U;

    MATHACL->OP2 = 0U;

    while ((MATHACL->STATUS & MATHACL_STATUS_BUSY_MASK)== MATHACL_STATUS_BUSY_NOTDONE){

       ;

    }  

    result = MATHACL->RES1;

    THX

    Vincenzo

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

    您好、Vincenzo、

    我的 HSM 同事将在这个问题上为您提供帮助。

    此致、

    Janz Bai

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

    您好、 

    对于 Qurt 功能、请先参阅本节:

    https://www.ti.com/lit/ug/slau846b/slau846b.pdf

    6.4.3平方根(SQRT)

    如果您对这些步骤有任何疑问、请随时向我提问。

    此致、

    Helic

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

    尊敬的 Helic:

    平方根阶跃的平方根。

    我按照以下缩放数字进行计算

    uint32_t sqrtNumber = 100;//求100的平方根

    uint8_t SFACTOR = 0//比例因子
    uint32_t count = 2 ;//缩放的数字必须介于1和2之间
    uint32_t SN = 0  ;
    uint16_t result = 0;
     应执行的操作
     {
        SFACTOR++;//increase SFACTOR
       count <<= 1//乘以2
     } while (计数< sqrtNumber );//重复、直到 UN 小于 count
     SQrtNumber <<=(30-SFACTOR)    ;//将缩放的格式转换为 UQ2.30格式
    //缩放的数字=(未缩放* 2^30)/2^SFACTOR = UNSCALED x 2^(30-SFACTOR)、采用 UQ2.30格式
    调用 SQRT 函数时、我无法使用此 SFACTOR。 我需要您的帮助如何使用它?
    DL_MathACL_startSqrtOperation (MATHACL, CONFIG, sqrt );
    我尝试用自己的方式如下所示、
    :1。 MATHACL_Regs math_Reg ;//创建 MATHACL_Regs 结构的对象
    数学寄存器 CTL =(0xffffffe5 & 0xe1ffffff &(0xffe0ffff|(SFACTOR << 16)))//(sqrtNumber 、Func CODE & NUMITER &、SFACTOR @ 16-21位)
    DL_MathACL_setOperandTwo (MATHACL、sqrtNumber)   ;//在 OP2中设置缩放值
    DL_MathACL_waitForOperation (MATHACL)         ;  //等待完成        
     Result=(uint16_t)(DL_MathACL_getResultOne (MATHACL)>> 16)    ;//获取整数部分
              
    result:result = 0;//不工作
    Way2。
    __static_inline void DL_GPIO_setValueCTL (MATHACL_Regs* math_cluint32_t data)//创建一个函数
      MATH_cl->CTL = DATA;
    }
    调用此函数
    DL_GPIO_setValueCTL (MATHACL、(0xffffffe5 & 0xe1ffffff &(0xffe0fffffff|(SFACTOR << 16)))) ;//设置函数夸脱
    DL_MathACL_setOperandTwo (MATHACL、sqrtNumber)   ;//在 OP2中设置缩放值
    DL_MathACL_waitForOperation (MATHACL)         ;  //等待完成        
    Result=(uint16_t)(DL_MathACL_getResultOne (MATHACL)>> 16)    ;//获取整数部分
    result:result = 0;//不工作
    我注意到另一个打印问题
    在表中、它作为缩放数字为用户输入提供了 OP1、但在配置中为 OP2。 哪一个是正确的?

    此致

    图尔西·达斯

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

    尊敬的 Helic:

    我在我的路上得到了答案2。

    我在我之前的代码中发现了错误。

    DL_GPIO_setValueCTL (MATHACL、(0xffffffe5 & 0xe1ffffff &(0xffe0fffffff|(SFACTOR << 16)))) ;//设置函数夸脱

    在此行中为 0xFFe0ffFF|(SFACTOR << 16)。 它必须为0xFFc0ffff|(SFACTOR << 16)。 因为 SFACTOR 需要6位。

    我觉得很高兴,如果你能解释如何使用: DL_MathACL_startSqrtOperation(MATHACL, config, sqrt );

    调用 SQRT 函数时、我无法使用此 SFACTOR。 我需要您的帮助如何使用它?

    此致

    图尔西·达斯

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

    嗨、  和 

    以下是 SQRT 操作代码示例:

    e2e.ti.com/.../mathacl_5F00_sqrt_5F00_op_5F00_LP_5F00_MSPM0G3507_5F00_nortos_5F00_ticlang.zip

    此致、

    Helic