我们在任何程序开发过程中,总会碰到这样那样的问题,当然单片机程序开发也是如此,尤其是初级工程师在程序开发过程中总会犯错,接下来我们简单了解下这个实例,也许会帮到你。
While(1)
{
//上电进入主程序 或 触发触摸屏
//播放提示语音
Delay();//等待播放完毕
//读取M1卡信息
Delay();//等待读卡数据返回
//播放提示语音
Delay();//等待播放完毕
//M1卡数据交互,判定下一步操作及提示
Delay();//等待数据处理完毕
……
……
}
我们暂且不对其做出任何评价,但是可以看出这个工程师基本上对自己设计的产品没有任何整体概念,或者可以说对自己开发的程序用到设计上会产生的实际效果根本不清楚。所以他触犯了我们在程序开发过程中的几个问题:
1.dalay这类函数只应该在实验室验证某个功能的过程中才会用得到,在实际产品开发时无论是主循环while中,还是其调用的函数中,亦或是中断服务程序中绝对不可以用到。
2.产品设计的各个子模块之间的逻辑关系太强,说实话我们一般都讲究在产品设计中只有各个事件处理模块间的逻辑关系弱化,才能够更加灵活的进行处理。
3.没有考虑到单片机本身是一个单核单任务的架构,每一个事件都会独占CPU内核,当多个任务模块同时存在时我们应该对各个事件进行区分,我们应当分情况、分事件实时性要求等区分对待。
所以针对这些,一名老工程师给初级工程师出了几点建议:
1.单片机种类不要贪多,那么对于初学者来讲,建议你好选择一种单片机为主,把它学懂学精。
2.学的精比学的多好,一些资料看完之后只是懂个大概,倒不如踏踏实实安下心来吃透每个知识点,理解每个细节。
3.按需学习,单片机种类繁多,想要全部学会不可能,所以在实际工作中应该采取按需学习的模式。
4.能力比知识重要,能不能运用所学知识来快速解决问题,是衡量每个工程师能力高低的重要指标。
5.动手和看书同样重要,其实看再多的资料,不去动手,也只是一只半解,所以动手能力真的很重要。
初级工程师常犯的几点错误,你中标了没?如果能够很好的结合自身情况,这些错误是可以避免的。