本帖最后由 fly1974 于 2019-9-11 16:49 编辑
前几天一个同事离职了,因为公司所谓的电工(电子工程师)就剩我一个,所以他写的代码等资料就毫无疑问的移交给我了,我的这个同事也算是个老工程师了,年龄不小,小孩子都上高中了,今天看到他的主板代码,刚开始读就大吃了一惊: 外部中断里面居然加了死延时(使用while实现),延时时间还不短,居然有10毫秒,怪不得stm32F103他都不够用,看来这个设备的代码结构要大改了(尽管已经作了大改的思想准备,但是看到如此低水平的代码,还是有点失望,这个同事做事情还算认真,可没想到专业的东西搞这么差,PCB也是的,画好的PCB找不到原理图,要改PCB还得先把原理图整理出来,他画的4层板就不管耐压不耐压,中间两层分别连24V的正极和负极,分割区域内有一块是交流220V的,居然没有将中间层挖空!)!
写这边帖子的目地,不是为了嘲笑我同事技术不行,只是希望大家少犯这种低级错误;另外我其实不满的是我同事从我这借了公司钥匙,最后他离职时我问他要他不肯还给我,还要咨询主管意见,做事情畏畏缩缩地样子;还有其实就事论事我是支持我同事离职的,要换作我是他,我也许走得更快,因为我同事离职前被自己调试的设备砸成了工伤,我认为同事被砸伤的原因很大程度在于设备盖子没有下落缓冲装置,是设计不完善,不过负责机械部分研发的同事貌似没有意识到这一点!
void EXTI9_5_IRQHandler(void)
{
delay_ms(10);
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)
SysTick->VAL =0x00; //清空计数器
SysTick->CTRL=0x01 ; //开始倒数
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
SysTick->CTRL=0x00; //关闭计数器
SysTick->VAL =0X00; //清空计数器
}
另外我把后面帖子的部分内容贴过来,简单说一下:
下面这段代码就像是城市公交车,每10分钟一班,结果某人在等公交车时却等了3-5个小时,如果是因为刮风下雨等自然灾害的偶发因素引起的,一般人就忍了,关键是10次里面可能有4-5次都出现了很长时间等待,又没有啥特别的原因,我估计一般人都忍不了,等公交的可能会把调度给骂晕了!
void TIM3_IRQHandler(void) //1ms中断
{
//u16 flag=0;
if(TIM3->SR&0X0001)//Òç³öÖжÏ
{
sect_strim(); //2017.04.06 执行时间可能远大于1mS
if(dq_flag==1) //2019.07.16 add
{
qpshu_dis(); // 执行时间可能远大于1mS
} ....
}
TIM3->SR&=~(1<<0);//Çå³ýÖжϱê־λ
}
|
其实大家心里面都明白,这里面好多攻击我的人,其真实身份不过是所谓的五毛,发帖攻击我我也能理解,不过我还是希望不要做得太过分!
本来是一篇技术兼发发牢骚的帖子,愣是让我看到了犹如一出大戏出演的画卷,人生如戏,帖子居然也能看出人生险恶了,其实发帖子之前我就有思想准备可能会有人对我不满,没想到啊没想到,不过无论如何我都会坚持不删帖这一条,或许会让很对人失望呢!
@icecut :已经取消了,各有利弊吧,不打勾看帖的人比较方便,打勾了发帖的方便
@fly1974 :你还是别打勾了. 逆序还真麻烦.
@神奇号 :帖子里面有个选项:回帖倒序排列,打个勾就可以了,这样看最近的帖子不用翻到最后面去!
好奇怪,你这个帖子怎么是倒着的,1楼在最后
还是不要评价的好,每个人审美不同,有可能是故意写的这么晦涩,重在理解程序的流程,怎么写都是有原因的,“挽弓当挽强,用人当用长。射人先射马,擒贼先擒王。”,看过神雕侠侣中关于独孤求败练剑的体会吗?有可能他已经到了另一个境界了
@thinkabout4451 :是的,已经离职了,大家都不碰面了,把一些不合理的地方拎出来讨论一下,做一个反面典型,希望大家少犯这种低级错误吧,至于单位内部我是不会轻易评价一个人的能力的,毕竟不在我的职权范围内,不过我这个同事在单位我倒是听过一些其它人对他的负面评价,我一般都是随便应付一下,不会轻易发表看法。
@fly1974 :都是出来混饭吃的,多些包容也是对自己的宽容,这种事我遇到的多了
@thinkabout4451 :可能是我漏了,我同事的代码其实只是将我以前msp430的代码移植到stm32F103上,另外将普通液晶屏改为触摸屏而已,代码有亮点也有缺点,不过我觉得有些缺点太不符合他一个资深电工的身份了!