打印

请教个UCOS浮点计算的问题

[复制链接]
181|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
博斯|  楼主 | 2018-7-29 18:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原来的工程设置好FPU和相关的库后使用函数arm_sqrt_f32()能计算出正确的结果,根据“STM32F4 UCOS开发手册_V3.0”写好例程后,原例程正常运行,可看到已使用FPU。然后我在LED0任务中加入了浮点开方计算,程序就死掉了,加大堆栈到1024也不行,只有将arm_sqrt_f32(2,temp)中的变量*temp设置为全局变量才可以继续运行,但问题是计算的结果始终为0,不知何故?以下为源码:
//LED0任务
void led0_task(void *pdata)
{                 
        pdata=pdata;
        while(1)
        {
                arm_sqrt_f32(2,temp);//使用FPU计算2的平方根
                temp1=(u32)(*temp*1000);//浮点数强制转换为整数
                LCD_ShowxNum(110,600,temp1,4,16,0X80);
                LED0=0;
                delay_ms(80);
                LED0=1;
                delay_ms(920);
        };
}

请教两个问题:
1、如果不设置为全局变量要怎么做?
2、为何计算结果不正确?怎么修改?
请赐教,谢谢!

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

412

主题

412

帖子

0

粉丝