11.2 最小值Minimum 这部分函数用于计算数组中的最小值,并返回数组中的最小值和最小值在数组中的位置。
11.2.1 arm_min_f32此函数的使用比较简单,函数定义如下: void arm_min _f32(float32_t * pSrc, uint32_t blockSize, float32_t *pResult, uint32_t * pIndex) 参数定义: [in] *pSrc points to the inputvector [in] blockSize length of the inputvector [out] *pResult maximum value returned here [out] *pIndex index of maximum value returned here
11.2.2 arm_ min _q31函数定义如下: void arm_ min _q31(q31_t * pSrc, uint32_t blockSize, q31_t * pResult, uint32_t* pIndex) 参数定义: [in] *pSrc points to the inputvector [in] blockSize length of the inputvector [out] *pResult maximum value returned here [out] *pIndex index of maximum value returned here
11.2.3 arm_ min _q15函数定义如下: void arm_ min _q15(q15_t * pSrc, uint32_t blockSize, q15_t * pResult, uint32_t* pIndex) 参数定义: [in] *pSrc points to the inputvector [in] blockSize length of the inputvector [out] *pResult maximum value returned here [out] *pIndex index of maximum value returned here
11.2.4 arm_ min _q7函数定义如下: void arm_ min _q7(q7_t * pSrc, uint32_t blockSize, q7_t * pResult, uint32_t* pIndex) 参数定义: [in] *pSrc points to the inputvector [in] blockSize length of the inputvector [out] *pResult maximum value returned here [out] *pIndex index of maximum value returned here
11.2.5 实例讲解实验目的: 1. 学习FastMathFunctions中最小值的求解 实验内容: 1. 按下按键K2, 串口打印函数DSP_Min的输出结果 实验现象: 通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:
程序设计:
- /*
- *********************************************************************************************************
- * 函 数 名: DSP_Min
- * 功能说明: 求最小值
- * 形 参:无
- * 返 回 值: 无
- *********************************************************************************************************
- */
- static void DSP_Min(void) (1)
- {
- float32_t pSrc[10] = {0.6948, 0.3171, 0.9502, 0.0344, 0.4387, 0.3816, 0.7655, 0.7952, 0.1869, 0.4898};
- float32_t pResult;
- uint32_t pIndex;
-
- q31_t pSrc1[10];
- q31_t pResult1;
-
- q15_t pSrc2[10];
- q15_t pResult2;
-
- q7_t pSrc3[10];
- q7_t pResult3;
-
- arm_min_f32(pSrc, 10, &pResult, &pIndex);
- printf("arm_min_f32 : pResult = %f pIndex = %drn", pResult, pIndex);
-
- /*****************************************************************/
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- pSrc1[pIndex] = rand();
- }
- arm_min_q31(pSrc1, 10, &pResult1, &pIndex);
- printf("arm_min_q31 : pResult = %d pIndex = %drn", pResult1, pIndex);
-
- /*****************************************************************/
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- pSrc2[pIndex] = rand()%32768;
- }
- arm_min_q15(pSrc2, 10, &pResult2, &pIndex);
- printf("arm_min_q15 : pResult = %d pIndex = %drn", pResult2, pIndex);
-
- /*****************************************************************/
- for(pIndex = 0; pIndex < 10; pIndex++)
- {
- pSrc3[pIndex] = rand()%128;
- }
- arm_min_q7(pSrc3, 10, &pResult3, &pIndex);
- printf("arm_min_q7 : pResult = %d pIndex = %drn", pResult3, pIndex);
- printf("******************************************************************rn");
- }
复制代码
1. 这里求最小值跟上面求最大值基本是一样的。
|