本帖最后由 jiang887786 于 2015-1-16 11:54 编辑
首先,我要说的是我读书少,表达意思不准确如有疑问请在下面的楼层提问。网上我没有搜索到类似的源代码,估计这是第一帖。由于功能块较多我不可能一次性全部发表&说明完整,可能以后我会陆续的发在下面的楼层。此功能块的原作者不知道是谁,呵呵。我只是根据IEC6113-3的标准ST语言改写成C语言。(当然,我不会C++,如果会的话我改成C++就完美了,c++在一个函数调用过程中可以一次性返回多个参数,就是类的公用部分参数吧?抱歉,书看的不多,也就不多说了。还是想啰嗦几句,哈哈。大神也可以指正我对c++的理解错误:比如c++里面有个函数(int)ACB_123){;;//许多语句…..},编译器编译时生成了(int)ACB_123)的机器码并且在单片机的某些flash存在,当其他函数调用(int)ACB_123)时编译器会分配相应的(int)ACB_123)里面使用的变量等等给系统使用,
当还有其他函数调用(int)(ACB_123)时编译器会分配相应的另一些(int)(ACB_123)里面使用的变量等等给系统使用,只是这些变量的地址不是上一次那个函数调用的变量地址了。而机器码还是原来的那部分机器码。就是你调用的再多次这个函数机器码只有这个机器码(节省flash看见相对于c来说。)而变量的地址不同了。从而返回的参数也不同了,这也是正确的结果。如果是c的话,你想在一个工程里面使用两个相同功能的函数的话,你只能吧一个函数复制成两个比如上面说的
(int)(ACB_123A){;;//许多语句…..}、
(int)(ACB_123B){;;//许多语句…..}、
(int)(ACB_123C){;;//许多语句…..}、
等等,只不过这三个(ACB_123函数内部的东西是一模一样的罢了)目前我就是这样做的,希望大神们给个高见解决我目前的窘态。哈哈!关于C&C++我就懂这么多吧。不扯了,下面开始正文。尼玛,正文都不知道扯到哪里了,让我看看想想……)花了将近2个月的时间才改写完成,最初改写是按照C51改的,最后感觉c51排不上大用场,还是用CW5.1+MC9S12XD256调试输出吧。所以现在才把这些源代码发给大家使用,(也是我兑奖K64—L5的非卡奖品想莫大承诺的,打算有时间就共享这些代码)有需要的哥们儿就顶一下哦。谢谢支持。还有,如果我侵犯原著的版权,请回帖或者告知本坛删帖,谢谢合作!谢谢大家。这里我要说的是从开始的一个模拟量输入到最后的两个u