(资料图片)
最近在测试养鱼模块的时候遇到了这样一个问题,即:游戏内时间传感器可以设置的绿/红信号持续时长最长只有10周期,那么若是所需要的持续信号输出时间超过了这个长度,又该怎么办呢?
经群友@null 的指路,田鼠吊命养殖会遇到类似的问题。参考up主@ETANZ的视频【缺氧牧业】锹环铁鼠无限养殖测试版1.0(省CPU思路)_哔哩哔哩 bilibili https://www.bilibili.com/video/BV1tS4y1s7A9 的做法,我设计了下面这样一个计时用的自动化小模块
按图中设置各自动化元件的数值,时间传感器每周期输出一次绿色信号。
运行原理:初始锁存器内存为红色信号,左边两个计数器开始工作,在时间传感器输出30次绿色信号后,输出绿色到锁存器的置位端,使锁存器内存变为绿色信号。该绿色信号会停止左边两个计数器的工作,开始右边两个计数器的工作,同样地,在时间传感器输出20次信号后,输出绿色信号到锁存器的复位端。这样一来,这个自动化小模块就实现了持续输出20周期绿色信号/30周期红色周期的功能。
上面为大家便于理解采用了20、30的数值,然而实际上两个计数器排列组合可以得到1*1,1*2,...,10*10一共55个值,4个计数器合起来可以得到各种时间长度比例的绿/红信号,再结合模块中的时间传感器就可以自由实现较长时间的持续信号输出了。
例如当我需要实现绿色3.1周期/红色11.9周期的持续周期信号输出时,我可以计算得出最接近3.1:11.9比例的值是21:81,那么将左边两个计数器分别设置为9/9,右边两个计数器设置为3/7,时间传感器设置为44.1s/44.1s的话,就可以得到绿色3.087周期/红色11.934的周期性持续输出信号。
经过验算,这个模块最差的情形是需要信号时长比例位于5:6和49:60正中,即99:120左右,在一个循环周期内的时间误差为总时长的0.25%
虽然不是完全精确,但在大部分情形下也足够使用了。
关键词: