为保持输出代码能力,会不时地做些小训练。
周末在训练自定义Timer时,偶然发现了MOD指令在某些特定时候会带来高效,故记此小文。
构建Timer的方法有多种,其中一种是借助PLC系统时钟字节实现,当然西门子官方指南是不推荐这么做的,毕竟它依赖硬件。
初次设计时,采用了笨方法,毕竟量产之前得先有“原型机”,由“秒->分->小时->天->周->月->年”,分级递进的方式。
代码写了一长串,自己都觉得尴尬。
代码写完,功能也基本实现,可直觉告诉自己,事情不应该是这样的,毕竟里面有很多代码的逻辑本质是一样的,当然可以把它们提取出来单独封装,可这样就是可以的吗?当然不是,应该还有更巧妙简洁的法子。
于是便随手拿起电脑桌上的一枚1元的硬币,一边在指间翻转着,一边不知道在想什么,冷不丁地突然想到,就像硬币的两面一样,加减的另一面就是乘除,乘除?求模!MOD指令。
重新编码,出来二代码。
想法一改,很多工作直接不需要再做了,像传零、复位、级间联锁。
MOD在什么时候能够提升生产力,想必聪明如你,此时已经知道了。