下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的错误。

__interruptdoublecompute_area(doubleradius){doublearea=PI*radius*radius;printf("Area=... __interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf(" Area = %f", area);
return area;
}
展开
 我来答
百度网友64c9ca5
推荐于2017-11-23 · TA获得超过231个赞
知道答主
回答量:51
采纳率:0%
帮助的人:43.3万
展开全部
1、ISR不能有返回值,必须用void;
2、ISR不能传递参数,必须用void;
3、ISR应该是短而高效的,所以不推荐在ISR中做浮点运算,应该只由中断发出消息或置位标志然后由应用层去处理其他工作;
4、ISR中不应该有重入和性能上的问题,因此使用pintf()函数也是不好的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海猫络合物QAQ
2010-09-03 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:114万
展开全部
中断服务程序不能有返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式