完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
` 单片机编程魔法师之高级裸编程思想 高手问答第16期 余工简介: 1993年毕业于南京理工大学计算机科学与工程系。著有《单片机编程魔法师之高级裸编程思想》。
余工说:
点此:
若是小伙伴有裸编程思想方面的问题,or单片机编程,or more 。。。欢迎跟帖和余工一起交流探讨 同往期一样,在本帖子下面 跟帖并@ yyy71cj (余工) Are you ready to share ,to communicate ,even to question ? 为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水和无脑喷子。
互动奖励规则: 为了鼓励踊跃提问,参与问答,说不准有你就是那个幸运用户,(有两个幸运用户哟)能得到余工亲笔签名的《单片机编程魔法师之高级裸编程思想》一书哟。 ************************************************************************** 社区高手招募 不限专业领域、不限技术方向,只要你是一个有活力并乐于分享的开发者,只要你愿意把自己的经验收获分享给大家,帮助众多从业者共同学习、共同进步,我们就欢迎你来做客社区之星。 联系方式:pengjiali@elecfans.com。快来联系小编吧! ************************************************************************** 往期回顾: 获奖名单:@哼小曲@douyin8 ` 本帖被以下淘专辑推荐:
|
|
相关推荐
103个回答
|
|
我的那本书上有一个8LED的例子,你可以借鉴一下,从LED灯做起,自己搭块电路板,尝试让灯用不同的方式点亮。例如:全信号 亮、方波信号量、脉宽变化产生不同的亮度、一起亮、按顺序亮、循环亮等等,体会一下编程思想在这种实践中的运用 |
|
|
|
裸编程思想这本书吗??我试试咯,感谢咯 |
|
|
|
|
|
|
|
通俗易懂,简单明了,内容详细
|
|
|
|
我看了一下这本书,适合有点基础再去提高的童鞋 很不错哦 继续看
|
|
|
|
|
|
|
|
|
|
|
|
我也觉得有点标题party,当然点亮一个led灯不需要用到操作系统,操作系统就是为了更好的利用单片机资源,而且缩短开发周期。裸编要通观全局有时候更容易出错。而且现在单片机都是高性能白菜价,不用担心操作系统那点损耗。 |
|
|
|
帖子从头看到尾,书虽未来得及拜读,但感觉作者魅力很大,跟帖!
|
|
|
|
很多情况是,可能会变成不可能,而不可能却会变成可能,要看了才知道…… |
|
|
|
|
|
|
|
去学习和参考,写的好,
|
|
|
|
|
|
|
|
其实,目前,裸机的应用远远大于上系统的应用。 而且,将来还会如此。 而那些上系统的,一部分是因为其定位处于复杂应用的场合,而另一部分则是因为对技术生命的恐惧。 真正的高人,是不会对此而大谈特谈的。 如果你在裸机应用的场合中,你就去成为一个裸机应用高手,如果你用上了操作系统,你就去安心成为一个非裸应用高手。这二者有关联,但不必须,也无高低贵贱之分,所有的异念,都是人心自己筑成的 |
|
|
|
1.11.5 回顾与思考
彩虹之后,我们应该回顾一下我们这番修炼所经历的风风雨雨,酸甜苦辣。 首先,我们应该能看到数据驱动的程序有多少的魅力。 一个完美的结构,一个终极的结论,一个通用的能力,让数据驱动程序魅力四射,光艳照人。 它把我们的编程从代码逻辑的组织,转移到了数据规律的统计,从而让编程更容易,让出新更简单。可以想象,如果我们有一个播放设备,里头什么数据也没有,而只要我们提供不同的数据设备,例如一个数据存储芯片,我们就能获得完全不同的结果,正如为MP3下载歌曲一样。 这看起来真是个一劳永逸的事情。因为我们编了一个程序之后解决的不是一个问题,而是一类问题,产品的形式也得到了转型与定型。即使我们的播放程序需要修改,也就是说发生了版本升级,只要我们的版本升级坚持完全的向前兼容性,那么那些隐藏着不同逻辑规律的旧数据不需要做任何变动就依然能被我们使用。一切的升级动作都会轻松而安全。而且,我们只对播放器做修改或扩充,所有的数据脚本就都将可以继承新版本播放器的成果,所有的使用者都将获得新技术新体验。 其次,这种实现思路的穿透力十分强劲。因编程思路的改变而导致控制思路的改变,数据驱动程序的控制思路的影响力不但影响了我们软件的设计手段,而且还可能会波及到硬件设计的思想,让硬件的形式发生相应的变化。 不难想象,纯数据的东西,放在哪儿不是放?用不同的独立的存储芯片存储不同任务脚本,我们就能在同一个设备上解决不同的问题,难道这不正是一个好的发展方向吗?数据存储器与数据播放器在硬件上的分离,硬件设备便更具有产业化的性向,这样的产品系列也将具有极大的可塑性与广泛性。 面对这种不言而喻的优越性,现在我们有必要好好来总结一下这种编程方式的统筹分析过程。 首先,我们得有战略眼光,从大逻辑上为数据统计创造条件。 为什么我们会在问题1中的延时循环次数中使用749与251这种毫无规律的数据呢?这个问题是我们在前面留下来的一个悬念,现在终于到了该结案的时候了。使用这两个数的主要原因就是为了让它们看起来根本没有什么规律可言。这是什么情况?这是因为如果我们一开始就使用了750和250这样的数据,那么很多人就会在发现一个隐藏的重要规律前对一些更浅的规律大做文章,从而很有可能把750是250的3倍作为一个简化问题的思路而迷失,并因之而导致最终走不到“数据-播放器”的编程思路上来。749与251这两个任意数的使用,可以彻底断了编程者的那种急于优化的草率念头,并以期有机会把编程者的分析思路逐渐引入佳境。 统计数据需要远见与耐心。编程统计数据与单纯的统计数据不同。单纯的统计数据只需要把数据罗列出来,至于分析的方式则完全未知。而编程统计数据既要与编程结合,又要努力让数据与代码分离。这看起来是一种矛盾,但是事实上并不是什么矛盾,而是一种先合后分的演绎过程。 编程统计数据与编程结合,是表现在处理手段上,如果我们统计数据的时候让最终的处理数据很困难,那么我们的统计工作将会归于失败。所以这种统计工作必须要以编程实现为目的。而使数据与代码分离,则可以让数据具有一种通用格式,既便于生成,又便于处理,还便于理解与归档,同时还能促成通用数据解析器的形成。 我们对问题1中所提出的问题的解决,就是由浅显到深入,按先合后分的思路演绎出来的。在开始的时候我们可能根本就不知道我们的代码最后会成什么样子,但是写着写着就明了了,我们最终找到了方向。当然,也许实际工作中我们可能会出岔,但这不会动摇我们攻克堡垒的信念,我们最终必须会找到归路。 其次,我们要收集我们可以利用的条件,为数据处理的合并做好准备。 我们在处理四支波的时候,我们得益于使用了P1口的连续低4位口线。当然,事实上这4个口线只要都在P1口内,我们就能用类似的办法来处理它,只是不连续的口线在我们做数据分析的时候稍微啰嗦一些。当然,尽管这难不倒编程高手,但是我们为什么要避易就难呢? 可能还有更糟糕的情况,那就是在硬件设计的时候,我们把四支波分配在了不同口的口线上。因为事先我们可能并不知道程序将会用什么样的方式来处理,然后我们在进行了其他资源的分配后,只剩下一些零星的口线,或者为了使用更低廉的单片机,口线本身就很少,我们也不得不在硬件的束缚下将四支波将就着安排一下。 这么多可能的意外都会给我们带来麻烦,从而干扰我们的视线。所以,作为魔法师,有时候靠魔法,有时候也需要靠运气。但同时我们也得承认,运气更多的是属于那些有经验有眼光的魔法师的。 当然,再啰嗦的客观条件,我们都会有办法来解决问题的,只要不影响我们对编程方法的分析就行。 最后,我们要分析规律,编写数据脚本的播放器。 播放器的逻辑就是一种数据与播放器之间的处理协议,制订一个严谨的协议不仅会获得高效率的代码,还常常会反过来影响我们的分析思路、工作方法。所以我们必须要在制订协议的时候花足够的精力进行论证,以期让我们最终的成果能经得住时间的考验。 这一次,我们没有盲目优化局部代码,但这却带给了我们惊喜。在罗总数据与数据处理方法的时候,对称的、重复的、通用的规律未必是一种令人不快的冗余,有时候,它也是一种暗示,它在暗示我们,这里是有规律的。 播放器要完全脱离于数据。绝不能让任务特征数据与播放器藕断丝连,粘滞不清。只有一个完全不依赖于数据的播放器,才是好的播放器,才具有更好的独立性与再用性,并能够更好地服务于多剧本的应用场合,实现代码复用的需求。 当然并不是说播放器里不能有任何数据。播放器里可以有通用的数据,如果这个数据存在,那么这个数据则必须与任何一个具体的任务无关,它们必须完全只属于播放器,通用于每一个具体任务。例如一个MP3播放器的音量,它可以作为一个绑定播放器的播放器私有数据而存在,对于每一首歌曲,很显然都可以使用这个音量来输出音乐。 最后我们图示一下整个分析编制过程(如图1.11-6)。 |
|
|
|
本帖到此全部结束。谢谢大家的支持!
|
|
|
|
|
|
|
|
DOS下的protel,DOS下的C语言。这个我曾听到一个日企的工程师说过这个,和前辈观点差不多,能使用这些编程,优化。~~~~还说了一句 不要学的太杂了 |
|
|
|
有人学习是为使用而学的,有人学习是为炫耀而学的。我们要做前者而不要成了后者。当然,环境是不是如此,我就不发表意见了 |
|
|
|
能为坛友们的技术搭建阶梯是一件很荣幸的事。 但是好的阶梯,也需要广而告之,否则,也可能会被闲置与遗弃,因为玲琅满目的东西太多了。 多谢您的支持! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11765 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 16:01 , Processed in 1.030408 second(s), Total 80, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号