您的位置 首页 IC

工程师的佛系自省,避开逻辑的圈套

《请回答1988》第一集就让我这个三十多岁的肥腻中年男哭了个稀里哗啦,在普通而琐碎的日常生活里,母子之间、父女之间那种似淡却浓、连绵不绝的亲情总会在不经意间戳中为人父母/为人子女的泪点。这种感情的质地

《请答复1988》第一集就让我这个三十多岁的肥腻中年男哭了个稀里哗啦,在一般而琐碎的日常日子里,母子之间、父女之间那种似淡却浓、连绵不绝的亲情总会在不经意间戳中为人爸爸妈妈/为人子女的泪点。这种爱情的质地亘千年而不变,表达的方法则历万古而常新。古有孟母三迁的美谈,现有幼儿园门口的亲子大战。

上班路过幼儿园门口,常常看到娃娃和妈妈们相爱相杀的一幕。有的抱着妈妈的大腿,摊在地上撕心裂肺地哭喊,有的拽着妈妈的臂膀,上气不接下气地边哭边讲条件。妈妈们的体现倒出奇的共同,一副虽九死而尤未悔的慨然,怒目相向,横眉冷对。

大多数孩子膂力不济,打不了持久战,所以乖乖就范,耷拉着小脑袋一步三回头,在妈妈们志足意满的目光中走向幼儿园。可是,在这种敌我两边力量悬殊的战局中,偶有那种毅力坚决的小兵士,一向满怀着敢叫日月换新天的豪情,虽千万人吾往矣地宣告着自己的价值建议-玩、在家玩。

这种战略对峙的局面并不多见,常常目击,不认为怪。直到有一次,我忽然对坚持反抗的小兵士充满了深深的慕名之情:毅力这么坚决,必定是个干工程师的好苗子。

1

老衲之所以感慨万端,天然是因为工作上遇到了难以战胜的应战。在处理的过程中,屡次感到自己毅力不坚,想当逃兵脱离这迷离的前方。

老衲开发的一款工控产品中有一个反常电压维护功用,当外部供电电压反常时需求关断一切输出,当供电电压回到正常规模时康复一切输出。

这个功用乍看起来有些简略,有经历的工程师必定已经在脑海里想好了处理计划:

设定供电电压的正常规模上下限,用ADC周期性地检测外部供电电压并周期性地判别。设置判别电压反常的周期计时次数N,当供电电压继续低于下限或许继续高于上限必定次数(N)的周期时,关断其时正在导通状况下的一切输出。当供电电压继续处于正常区间(N个ADC检测周期)时,依据产品的功用逻辑,操控输出的注册和关断。

悲催的老衲开端便是这么干的,可是很快,老衲就意识到这种办法笨拙备至,底子完成不了反常电压维护。

原因无他,输出太多尔,操控逻辑太杂乱尔!

1565586635995992.jpg

这款工控产品的输出通道高达30多路,每路输出都需求独自操控,并且有的通道互有相关。输入信号则来自多路传感器、RS485总线、zigbee。操控输出时,主要是依据输入信号、产品内部状况,依照必定的逻辑注册或关断。

输入输出信号繁复,操控逻辑错综杂乱,以至于那个“想当然”的处理计划底子完成不了。

拍一拍脑袋想想吧。假定供电电压反常时,有15路输出处于注册状况。经过N个检测周期发现电压一向反常,所以乎把这15路统统关断。

咔咔咔,犹如抽刀砍西瓜,一刀剖去,红瓤黑子清楚俨然,那真叫一个不亦快哉!

可是且慢,“快哉”了之后呢?现在供电电压康复正常了,您这15路通道怎样康复之前的注册状况?

2

傻眼了吧?不论你们傻不傻,横竖我其时就傻眼了!

1565586651355442.jpg

关断总是简略,可是康复太难。就好像把房子推倒简略,再建起来很难相同。

老衲得供认,刚开端虽然傻了眼,可是我并没有开窍。我傻傻地为这30多路输出界说了30多个状况变量,“不亦快哉”之前先计算处于导通状况的通道,“快哉”之后需求康复时,再把处于导通状况的逐个康复。

可是,在导通状况的康复程序中,依然需求面临30多路输出。每一路输出都有自己的操控逻辑,在操控逻辑里既要看输入信号,还要看内部状况。并且有的输出还比较膈应人,它能够被好几个输入信号一起操控,终究处于什么状况要看这些输入信号之间的优先级。便是说,不只要看信号的其时状况,还要看它的前史状况!

从理论上来讲,硬扛不是不能够。总共30多路,余生还长,鼓起勇气一路一路来呗。程序上电运转后,将各个输入信号的前史状况、先后次第都存储下来,并实时更新。在反常电压关断维护之后的康复程序子分支中,再把每一路的操控逻辑都重写一遍。

从实践上来看,这种计划几乎笨的离谱。老衲花了半响功夫,弄了一路输出之后,测试了一番,发现这一路也没有康复对。

这路输出有四种操控逻辑,能够经过zigbee信号操控,输出方法是常开,经过RS485操控,则应该是闪耀,经过一个传感器操控,则应该是频率更低的闪耀,也能够经过一个本地开罐直接注册或许关断。这四种信号的优先级是最简略的那种:最终呈现的信号说了算。这儿没有康复对,明显是因为我从前存储前史状况时,把这些信号的先后次第搞乱了,可是信号这么多,程序搞得这么乱,犯错也是天经地义。

刚弄了一路还没弄对,要害是还有那么多路,我滴个乖乖,这岂止一个费事了得!

想通了这一点之后,老衲的毅力在一刹那间溃散了。

崩地那么猝不及防,以至于很长一段时间,我都深陷在椅子上,“关断”了自己的大脑输出,再也不想康复。

3

鲁迅先生说,这世上本没有路,走的人多了,天然就有了路。

在被幼儿园的小兵士从头鼓动了斗志之后,老衲的“小我”在脑海里左冲右突,寻觅晦暗的出路。

明显,有必要让输出通道的康复逻辑和平常的操控逻辑有所区隔,才干从那么繁复的操控网络中解放出来。

古龙说过:最高超的招数便是没有招数,以无招胜有招。金刚经曰:菩萨无我相,无人相,无众生相,无寿者相,方能成道。

那么,最高超的康复逻辑便是没有任何逻辑,让这三十多路输出通道康复时不遵照任何逻辑,不便是最为高深的“逻辑”吗?

很快,我就顺着佛陀的开示思路展开了下去。

大道千万条,最妙的是老衲这一条。我只需求在MCU的输出操控端口上做文章,当电压反常时禁能MCU端口的输出功用,电压康复正常时康复MCU端口的输出功用,就整齐划一、简明有力地完成了反常电压下的输出维护、正常电压下的输出康复。

管它电压反常时处于导通状况仍是关断状况,管它的操控信号状况怎么,诸信号间的优先级怎么,统统不重要。关断维护前是导通状况,禁能了MCU的输出就主动起到了输出维护效果,康复时也能主动康复导通状况。关断维护前是关断状况,禁能MCU的输出后仍是处于关断状况,相当于做了个“双保险”,康复时仍是主动康复关断状况!

老衲再一次被自己的梵学素质惊呆了。只要不遵照任何产品功用上的逻辑,才是最为简练的逻辑,更为要害的一点是,这种完成计划还能被应用在其它任何产品的反常电压维护上。

谁说工程师学佛没用来着?

1565586670807786.jpg

4

以这种近乎古怪的方法完成了反常电压维护功用之后,一向长于内省的老衲又开端“向内寻求”,总结经历教训了。

在技术问题上,首要仍是要战胜畏难心思,把畏战怯战心情尽量压制住。靠动脑袋处理的事儿,有必要先鼓足了心劲,坚决毅力,好好地把脑袋磨尖,才干在技术上深化地向下钻。

其次,人的思路总是有自己的限制性。就像老衲在这儿把思路限制在产品的功用逻辑上相同,像是蒙了眼的驴相同,来回地兜圈子。殊不知,跳出这限制,还广有一番洞天。

说到底,仍是破除“执着”。真实的高手,处理问题时从来不限制在武器上,刀枪剑戟斧钺钩叉,哪个趁手用哪个。也不限制在一招一式上,纵横捭阖如行云流水。只靠三板斧的笨功夫,在工程师这条道路上只会越走越窄。

思路上尽量开阔,不要粘滞在一隅。在这上面,咱们仍是要取法天然,多看看荷塘里怒放的荷花和莲叶,多看看挂在天边的月亮。细心领会领会这两句明言:犹如莲花不着水,亦如日月不住空!

水珠在莲叶上滚来滚去,一点点也不粘滞。弯弯的月亮挂在天边,可是咱们能明显地领会到它并没有“住”在虚空里。

这对咱们工程师,不正是很好的启示吗?多说无益,望诸君善思之!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/114531.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部