去了新公司看到源代码,看到这些时,我无法理解.

2020-01-23 14:30发布

        最近跳槽,新进一家公司有两个月了,然后今天上头弄了一份代码给我看,说熟悉下。
        我在程序里面看到了这些,以下是示例
        void keyscan()
        {
        if(K1==0)
          {       
           delayms(20);
           if(K1==0)//确认动作,执行程序
                {
                动作程序;
                }
        }
        }

        main()
        {
        delayms(100);//等上电稳定,时钟稳定
        各种初始化;
        while()
        {
        清看门狗;
        各种子程序;
        delayms(300);
        }
        }
       
       我看到的表情是 ,不过比起我在上一家公司好多了,上一家公司是这么写的。
        void ISR()//中断服务子程序,中断法(按键接在中断脚上)
        {
        if(K1==0)
          {       
           delayms(20);
           if(K1==0)//确认动作,执行程序
                {
                while(!K1);//等待按键松开
                动作程序;
                }
        }
        }
     那是我的表情是 ,这也能行。。。,后来我改掉了那个公司所有子程序。
       
    其实我看到这些,我现在更大的不知何去何从.  我无法理解,目前看到的代码,除了唯一看到一个采用定时器轮询法扫按键(本坛的状态机法等不包括在内),其它一律用delay();甚至中断while()等待松键
   有时庆兴自己啊,在这里泡了两年。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
liao-ljj
1楼-- · 2020-01-28 09:28
参与交换机开发时那代码大的人都没法看,几十万行的代码把人都搞晕了!那代码确实含金量很高,领先国内很多年,却不适合天朝的开发团队。
鸠摩智
2楼-- · 2020-01-28 10:53
gshuang1 发表于 2014-7-1 22:12
NO,这种代码是那种没有经过构思就直接下手写的人才写得出的,说到底这种人根本想不到那么深入,每写一一 ...

哥们我觉得我们说的根本不是同一件事吧
也许真的就只需要一个单线程的运行,在延时的时候不需要做任何的事情,根本就不需要多用上一个定时器,何必要绞尽脑汁的构思个定时器的延时出来?
想与不想是一件事情,应不应该又是另外一个事情了吧
skyseeingliqy
3楼-- · 2020-01-28 12:47
不知我说的对不对,从最终产品角度说,只要可靠就行,而且是很简单的去实现
DevLabs
4楼-- · 2020-01-28 13:55
代码没问题, 能工作, 但是能从代码中看到一个人的水平与态度.
习惯了优秀, 会受不了平庸.
GunGun
5楼-- · 2020-01-28 14:31
 精彩回答 2  元偷偷看……
mmiker
6楼-- · 2020-01-28 17:14
没觉得有啥不对。我经常这样干。按键属于慢速设备,循环检测就就可以了。实时性高的放中断里处理就可以了。

一周热门 更多>