发布于 2009-07-22 12:18:50
0楼
我查了,有这个说法。
最新的08年版:
英文原文:
When a subroutine is called more than once in the same cycle, the edge/up, edge/down, timer and counter instructions should not be used.
中文翻译版:
当子程序在同一个周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器指令。
***************************
因为我的印象中,是没有使用限制的。英文使用了“should not”,是不建议使用的意思,与中译版的“不能使用”,语气上大不相同。
子程序的一个作用,是重复利用代码,同一周期内多次调用,从代码上来讲相当于在调用处插入相同的子程序的代码。EU/ED是和指令所在位置相关的,所以子程序的展开和不展开效果是不一样的,但定时器、计数器等,则子程序展开与不展开,没有什么区别。
很简单的一个例子,假如说我要记录一个子程被调用的次数,我就在此子程序中设一个计数器,每调用一次计一次数,不管是不同周期,还是同一周期的调用。你们说说看这个用法有什么不妥的?