论坛风格切换切换到宽版
  • 3513阅读
  • 20回复

最近打算做DDS+PLL,可是编程遇见问题,C还不会啊 [复制链接]

上一主题 下一主题
离线代洪波
 
发帖
4809
只看楼主 倒序阅读 0楼 发表于: 2008-06-27
unsigned long x=33554432,y=78125,c=20000100,k,j;
unsigned int z;
unsigned char b=9;
double a;
main()
{  
  z=c/50000;
  a=x*c*b/y/z;
  }
这个是我写的一个简单算法,定义了一个double数据a,可是不能编译,提示有致命错误,不知为何i/o error on input file
离线szcharle
发帖
13335
只看该作者 1楼 发表于: 2008-06-27
啥软件啊?什么c啊呀?俺也是不懂
离线dianziwg
发帖
1040
只看该作者 2楼 发表于: 2008-06-27
用户被禁言,该主题自动屏蔽!
离线代洪波
发帖
4809
只看该作者 3楼 发表于: 2008-06-27
keil 我的版本是6.12,我想对数据做高精度计算!
离线代洪波
发帖
4809
只看该作者 4楼 发表于: 2008-06-27
'
软件问题!
'
请问是不是版本不先进呢?
离线szcharle
发帖
13335
只看该作者 5楼 发表于: 2008-06-27
软件本身问题,库没有引用,硬件限制?
离线阳光999
发帖
52
只看该作者 6楼 发表于: 2008-06-27
可能是 a=x*c*b/y/z;
中变量的类型太复杂 编译器看不懂
离线szcharle
发帖
13335
只看该作者 7楼 发表于: 2008-06-27
编译器找不到文件,保存?路径?
离线szcharle
发帖
13335
只看该作者 8楼 发表于: 2008-06-27
工程环境问题,具体硬件?建立工程
离线szcharle
发帖
13335
只看该作者 9楼 发表于: 2008-06-27
不要用中文路径
离线代洪波
发帖
4809
只看该作者 10楼 发表于: 2008-06-27
具体的硬件已经设置了,只要我把a的数据类型换成unsigned long就没有问题了
离线szcharle
发帖
13335
只看该作者 11楼 发表于: 2008-06-27
keil 的帮助文件有简单讲,库啊库
离线szcharle
发帖
13335
只看该作者 12楼 发表于: 2008-06-27
keil c51 不支持双精度实型,楼主用的是c51吧?
离线代洪波
发帖
4809
只看该作者 13楼 发表于: 2008-06-27
是的!c51
离线szcharle
发帖
13335
只看该作者 14楼 发表于: 2008-06-27
float.h?
离线代洪波
发帖
4809
只看该作者 15楼 发表于: 2008-06-27
看来keil不支持双精度运算!谢谢各位
离线szcharle
发帖
13335
只看该作者 16楼 发表于: 2008-06-27
看看那个浮点库,或许改了?要是用51算你这个,估计要累死
离线BG4UVR
发帖
11288
只看该作者 17楼 发表于: 2008-06-28
我在winavr20080610下编译楼主的代码,没有任何错误和警告。

楼主也许可以试一下,这样:

a=(double)(x*c*b)/y/z;


不过我也不知道可不可以。
离线BG4UVR
发帖
11288
只看该作者 18楼 发表于: 2008-06-28
另外,我发现把楼主那个“double”改成“uint64_t”,编译后代码的长度从1726字节变成了542字节。内存使用从284字节变成了32字节。 :d
离线机器懒猫
发帖
2350
只看该作者 19楼 发表于: 2008-06-28
[quote=代洪波]
unsigned char b=9;
[/quote]
b是不是字符类型?如果是,乘浮点得出的是什么类型?