0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

十层功力"!你在第几层?

GReq_mcu168 来源:玩转单片机 2020-05-07 15:39 次阅读

▍第一层/我来了

处在这一层的典型是可以用C语言写简单的逻辑控制,如闪烁LED,简单数码管显示,简单外围模块驱动实验。一般对单片机感兴趣,经常动手实践的人,半年左右,可以练到此地步(针对没有接触过单片机的人而言)。

此层最典型的示例就是,扫描按键时候,检测按下--延时20ms--再次检测按下--返回键值或等待释放。如果你是这样做的,或者正在这样做,毫无悬念,应该处于这个级别。对于95%的电类专业学生来说,毕业时候,远远低于这个级别,剩下的5%则依次分布在各层上。这也是为什么学单片机的人成千上万,而会用的人寥寥无几的原因。

▍第二层/真的打呀

步入这一层的典型标志就是开始思考自己所写的程序是否能够有一点实用价值。譬如应用在实际工程项目中。在这一层,应该开始思考如何让程序结构简单模块化,如何合理的利用CPU的时间。我曾经写过这一层的一点简单教程。对付这一层应该是绰绰有余了。

▍第三层/时间,说爱你不容易

这一层是建立在第二层的基础上面。从第二层跨越到这一层,需要很多代码行的积累。在这一层,你对系统中的各个模块应该能够很好的区分。同时对于时间的应用安排更加合理。在这一层,同时也应该考虑时间驱动的设计模式。如何让CPU更有效率的利用起来,需要长时间的积累,并非看,想就可以弄明白,而是不断的实践。

▍第四层/状态,你在哪里

这一层同样建立在第三层基础之上。掌握了以上三层,只要基本不涉及复杂算法的程序,可以组织小规模的程序的编写了。在这个时候,如何有效区分系统中的状态,利用状态来进行迁移,变得尤为重要。有人说通用结构好。反而我认为,针对特定应用来规划更优秀。对于单片机程序而言,几乎没有能够一摸一样的项目。而对于可移植性而言,能够做到函数级别的复用,已经非常难能可贵了。

▍第五层/时间,还是时间

时间具备精确性、模糊性、可丢失性,这三个特性是从应用时间的不同角度来描述的。精确性应用在精确地定时、计时的场合,它是个强实时的概念,比如测量频率。模糊性应用在需要稳定计时的场合,它追求的是长时间的稳定性,而忽略定时每刻发生的时刻,比如显示日期时间。

可丢失性是非重要的计时,它只要求阶段性时间符合而不要求一定时间到达就必定发生,比如LED闪烁的时间控制、倒计时执行某些功能性操作,通常是使用时间系统的时间发生标志。同时在这一层如果能够将WINDOWS程序设计中的一些优秀思想利用起来,则非常好。能够领悟到这一层的,在我所知道的前辈高手中少之又少。

▍第六层/丰富你的视界

这一层是我自己安排的位置。相比前面几层而言,我觉得它更为重要。写单片机程序,什么最痛苦,当然是做界面最痛苦。一个好的产品,离不开好的UI。在这里,你需要设计简单易用同时好看的人机接口非常不容易。

而且对于简单单色点阵液晶的操作,能够做到显示界面非常好看,同时程序结构清晰,非常不容易。很多人都说,设计界面,就像绣花似的。太痛苦了。我一直在折腾,现在还没有一个定论,到底是通用的结构好,还是针对特定用途还设计好。按照我在第四层中的说法,这里应该根据特定用途来规划更好些。

▍第七层/我们说好的

这一层主要是各种各样的协议的熟悉。非常重要,因为这个是和实际联系最为紧密的。工业现场的各种传感器,采集仪表如何将采集到的数据有效的发回给上位机。两者能够可靠的通信,软件层面上都离不开它们。

▍第八层/别争了,我来分配

还在为该如何分配CPU的时间嘛。其实不用苦恼。千万不要什么东西都重新自己造。你想开车,不用自己造轮子吧,买一个就可以了。前人其实对这些问题都研究过非常多了。因此操作系统应运而生。有人说,如果学会了在操作系统上面写程序,将绝不想再回到以前的那种编程方式,听起来非常诱人。

▍第九层/穿着操作系统去裸奔

什么,都用上操作系统了,还想着裸奔。太花心了吧。非也。这里是将前面几层所提及到的一些思想与第八层融汇贯通。可以说,在这一层,需要对前面的每一层都非常的熟悉。并经过很多实际项目的磨练方能有所体会。

▍第十层/无招胜有招

能够达到这一层的应该算的上是屈指可数的高手之一了。在这一层上,除了前面九层的熟练应用之外。更牛的人应该是可以设计操作系统,设计gui之类的。要达到这一点,需要非常多的基础知识,以及大量的专业知识以及实践,再加以10-20年的实战经验,以及一颗不沉寂的心。在这里,无招胜有招,非常熟悉MCU的特性,能够利用这种各样的技巧。这样的高人,在国内数一数二的电子论坛里也不在少数。

▍写在最后

单片机的本质只是一个工具。因此,更为重要的是模拟电子数字电子以及其它基础的专业课程。很多人都说大学学的东西没有用,其实这个才是最大的谬论。万丈高楼平地起,没有这些专业基础课程的支撑。以后工作中进步非常缓慢。道理很简单。学的东西都是建立在以前的基础课程上面的。如果一个连三极管的放大电路都不会分析的人,我不相信他可以设计出优秀的电路来。因此作为一个合格的电子工程师,除了掌握广泛的专业知识技能外,时刻不能够停止学习的脚步。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2536

    文章

    48840

    浏览量

    743484
  • 单片机
    +关注

    关注

    6011

    文章

    44153

    浏览量

    624316
  • C语言
    +关注

    关注

    180

    文章

    7551

    浏览量

    131854

原文标题:单片机开发设计之"十层功力"!你在第几层?

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    晶科能源荣获EUPD Research授予的六项"顶级光伏品牌"称号

    近日,由权威调研机构EUPD Research颁发,晶科能源在巴西、哥伦比亚、墨西哥、智利等拉美主要国家六个地区荣获 "顶级光伏品牌 "称号。凭借先进的技术、完善的流程和对卓越的不懈追求,晶科能源将继续提升行业标准,并在全球范围内推动积极变革。
    的头像 发表于 05-10 09:17 205次阅读
    晶科能源荣获EUPD Research授予的六项&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;顶级光伏品牌&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;称号

    九联科技推出一款&amp;quot;射手座&amp;quot;UMA502-T7物联网模组

    在物联网技术飞速发展的时代背景下,九联科技凭借深厚的研发底蕴与创新精神,精心打造出象征着自由探索与勇敢进取精神的&quot;射手座&quot;UMA502-T7模组,以昂扬之姿挺进海外市场,宣告了九联科技物联网模组国际化进程的盛大起航。
    的头像 发表于 04-14 09:38 576次阅读

    科沃斯扫地机器人通过TÜV莱茵&amp;quot;防缠绕&amp;quot;和&amp;quot;高效边角清洁&amp;quot;认证

    3月15日,在2024中国家电及消费电子博览会(AWE)上,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称&quot;TÜV莱茵&quot;)为科沃斯两款扫地机器人(型号:DDX14、DDX11)
    的头像 发表于 03-17 10:49 493次阅读

    Quanterix宣布Tau217血液检测被美国FDA授予 &amp;quot;突破性器械 &amp;quot;认证

    3月4日,Quanterix宣布其Simoa磷酸化Tau217(p-Tau 217)血液检测已被美国FDA授予 &quot;突破性器械 &quot;认证,可用于阿尔茨海默病 (AD) 的辅助诊断评估。
    的头像 发表于 03-12 17:23 1673次阅读

    中创新航荣获逸动科技2023年度&amp;quot;优秀战略合作伙伴奖&amp;quot;

    近日,中创新航凭借电动船舶领域领先的技术实力、卓越的产品质量、持续稳定的交付能力以及优质高效的服务,荣获逸动科技2023年度&quot;优秀战略合作伙伴奖&quot;。
    的头像 发表于 02-29 13:51 269次阅读

    第二代配网行波故障预警与定位装置YT/XJ-001:守护电力线路的超能&amp;amp;quot;哨兵&amp;amp;quot;

    第二代配网行波故障预警与定位装置YT/XJ-001:守护电力线路的超能&quot;哨兵&quot; 电力,如同现代社会的血脉,支撑着我们的生活和工作正常运行。然而,一旦这条血脉出现故障,生活和工作
    的头像 发表于 01-22 15:11 260次阅读
    第二代配网行波故障预警与定位装置YT/XJ-001:守护电力线路的超能&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;哨兵&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;

    电流互感器带&amp;quot;S&amp;quot;和不带S所表示的含义及区别

    电流互感器带&quot;S&quot;和不带S都是表示测量电流互感器精度等级。在规定使用条件下,互感器的误差在该等级规定的限值之内。电力工程中计量常用的等级有0.2、0.5、0.2S、0.5S等。
    的头像 发表于 01-14 10:32 901次阅读
    电流互感器带&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;S&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;和不带S所表示的含义及区别

    智慧光迅荣获2023年&amp;quot;智能物联成长力企业&amp;quot;奖项

    深圳智慧光迅信息技术有限公司荣获2023年中国物联网产业大会的&quot;智能物联成长力企业&quot;奖项。
    的头像 发表于 12-09 10:21 663次阅读

    十层 八层 多层 PCB,你很头晕吧?

    十层 八层 多层 PCB,你很头晕吧?
    的头像 发表于 12-05 15:40 395次阅读
    <b class='flag-5'>十层</b> 八层 多层 PCB,你很头晕吧?

    R&amp;amp;S携手Skylo Technologies增强非地面网络(NTN)测试服务

    罗德与施瓦茨(以下简称&quot;R&amp;S公司&quot;)携手Skylo Technologies打造用于Skylo非地面网络(NTN)的设备验收方案。
    的头像 发表于 10-20 09:50 466次阅读

    R&amp;amp;S推出新的W和D频段射频专用测试解决方案

    为支持毫米波和亚太赫兹前沿研究,罗德与施瓦茨(以下简称&quot;R&amp;S公司&quot;)继续推出先进的射频测试测量解决方案。
    的头像 发表于 10-11 12:31 623次阅读

    emwin显示最多分几层

    通常是两,请问最多可以几层
    发表于 09-22 06:16

    橙群微电子NanoBeacon SoC 在 &amp;amp;quot;Truly Innovative Electronics &amp;amp;quot;评选中脱颖而出

    InPlay我们的#NanoBeaconSoC产品在ElectronicsForYou的&quot;TrulyInnovativeElectronics&quot;评选中脱颖而出
    的头像 发表于 08-18 08:32 449次阅读
    橙群微电子NanoBeacon SoC 在  &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;Truly Innovative Electronics &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;评选中脱颖而出

    芯片工艺的&amp;quot;7nm&amp;quot; 、&amp;quot;5nm&amp;quot;到底指什么?

    近几年,芯片产业越来越火热,一些行业内的术语大家也听得比较多了。那么工艺节点、制程是什么,&quot;7nm&quot; 、&quot;5nm&quot;又是指什么?
    的头像 发表于 07-28 17:34 6252次阅读
    芯片工艺的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;7nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>; 、&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;5nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;到底指什么?

    西门子博途LAD-( JMP ):若 RLO = &amp;quot;1&amp;quot; 则跳转

    可以使用“若 RLO = &quot;1&quot; 则跳转”指令中断程序的顺序执行,并从其它程序段继续执行。
    的头像 发表于 07-17 10:53 1582次阅读
    西门子博途LAD-( JMP ):若 RLO = &<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;1&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>; 则跳转