打印

PIC30使用内部函数,编译出错的疑问

[复制链接]
2969|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用内部运算函数,编译出错,不知道怎么回事?希望高手指点
沙发
yewuyi| | 2012-3-31 11:40 | 只看该作者
什么叫内部函数 ?

如果是引用的库函数,请将该库文件加入编译才可以,内部函数的意思没听说过。

使用特权

评论回复
板凳
asspeed| | 2012-3-31 13:29 | 只看该作者
都提示你了,参数用错了..第一个参数必须是累加器.

  register int data  asm("A");
  int result
  ..
..
  result =__builtin_sac(data,4);
..
..

使用特权

评论回复
地板
figo20042005|  楼主 | 2012-3-31 13:42 | 只看该作者
我用的是PIC的原程序。
        register int a_reg asm("A");
        a_reg = __builtin_mpy(_MAX_PH_ADV, MeasuredSpeed, 0,0,0,0,0,0);
        PhaseAdvance = __builtin_sac(a_reg,0);

使用特权

评论回复
5
figo20042005|  楼主 | 2012-3-31 13:43 | 只看该作者
那C30中库函数在哪个文件里有?格式是什么的

使用特权

评论回复
6
yewuyi| | 2012-3-31 13:50 | 只看该作者
那C30中库函数在哪个文件里有?格式是什么的
figo20042005 发表于 2012-3-31 13:43



可自行查阅你使用的C30编译器的帮助手册。

使用特权

评论回复
7
figo20042005|  楼主 | 2012-3-31 14:13 | 只看该作者
屏蔽 __builtin_sac 几行就可以编译成功了,和库函数文件没关系,不知道怎么回事,其他的库函数都可以

使用特权

评论回复
8
yewuyi| | 2012-3-31 14:21 | 只看该作者
__builtin_sac 函数打算从哪里来?

既然你都不知道它为什么报错,那么你又是为什么写它的呢?

使用特权

评论回复
9
figo20042005|  楼主 | 2012-3-31 15:08 | 只看该作者
__builtin_divud();__builtin_lac();__builtin_subab();这些函数编译都不出错,就只有__builtin_sac 编译有问题,肯定是写法的问题。我的程序是MICROCHIP的,具体写法上怎么回事我也不知道。所以请教高手,ASSPEED写的那段是库函数里的给的写法,我的程序里也是这样的。就是编译还出错。

使用特权

评论回复
10
circus33| | 2012-3-31 15:14 | 只看该作者
:)

使用特权

评论回复
11
caijun_2012| | 2012-3-31 20:47 | 只看该作者
:)

使用特权

评论回复
12
alenthj| | 2012-4-16 18:08 | 只看该作者
__builtin_divud();__builtin_lac();__builtin_subab();这些函数编译都不出错,就只有__builtin_sac 编译有问题,肯定是写法的问题。我的程序是MICROCHIP的,具体写法上怎么回事我也不知道。所以请教高手,ASSPEED写 ...
figo20042005 发表于 2012-3-31 15:08


我也遇到。 装了MPLAB IDE V8.56,打开C30里面的example, 运行BLDC程序,也是报这个错误,我啥都没动过,就building all。    我想example总不会有错的,我就像把这问题搞清楚

使用特权

评论回复
13
sunskyme| | 2014-10-29 14:29 | 只看该作者
我也遇到上述问题。一个在MPLABC30安装文件里面的EXAMPLE里面的(MPLAB V742)例程,可以编译,但是拷贝到安装MPLAB V890C30的电脑里面编译,就出现和1楼一样的错误,不知道为什么。是编译器MPLAB版本的原因  还是什么其他问题?

使用特权

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

本版积分规则

16

主题

1576

帖子

3

粉丝