发布于 2013-12-29 23:21:27
3楼
楼主说得有道理。但语气上不必这么绝对。
一、“除了子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器”
中的“不能”认为不妥。但就指令本身来讲,并不会产生语法错误,也就是完全可以使用,只是对这些指令的作用/行为,掌控起来有点难度。因为这些指令使用是都是全局资源,相当于全局变量在子程中的行为,不能为不同的调用保留各自的值。举一个简单的计数器的例子,如果一个子程序里有一个计数器,每调用一个计数值+1,也就是这个计数器是用来记录该子程序调用次数的,意义明确,动作正确。因此,上述的“不能”,改为“不宜”较好;
二、我们写的程序,其实是运行在系统程序的调度之下,对系统程序来说,我们的“主”程序也是一个“子”程序,姑且叫它0级子程序,它也有局部变量区,变量的使用规则同常规的子程序没有两样,唯一不同的是,这个0级子程序,每个扫描周期仅调用一次。所以说,在子程序中范的变量使用错误,一般拿到主程序上,也是会出错的。