写在最前面:纯属个人见解,如果您不同意,那您对!如果对你有帮助,恭喜你。

程序是什么?程序就是你的想法的体现,就是思维。怎么写程序,就是你想怎么完成某件事情。

程序就是思维,所以和人的想法息息相关,接下来,就要分析一下人的思维方式。
我们从小到大,接触到的,习惯性的,就是连续的思维:你跑步,是连续的,你喝水,是连续的,你看电影,也是连续的,上课学习,更要连续,不然如那个笑话所说,上课一晃神,老师原本两行的黑板书,变成了满黑板。
但是,程序的核心,他就是离散的。运行节拍来自晶振,微观层面,就是离散的,更多的方面,就不解释了。
所以,要入门,必须搞清楚一些概念:模拟–数字,连续–离散。入门程序的第一件事,是抛弃连续思维,进入离散思维。其实教科书也说了,离散数学,是计算机科学的核心基础学科,相信大部分人看过也忘了,在此提醒一下各位初学者。
再谈一些单片机必须掌握的一些概念,然后详细解释一下:
1、宏观–微观。这个是学习单片机必须掌握的。比如,微观上,电影24帧/秒,就是一秒钟有24张图片,但是,你眼睛看上去(宏观上),就是流畅的动画。微观和宏观不是绝对的,都是相对意义上的概念。LED的PWM频率,达到250HZ以上,人眼才会察觉不到明显的闪烁感。所以,掌握这些宏观微观的经验,对于以后的帮助很大。
2、微分–积分所有程序,都是天然的对时间的微分
比如,你测一个速度,1ms测一次,就等于我们把单位为每秒的速度,细分了1000份,这个微分得越细,越接近实际值(假设测得到速度)。然后,我们将这Δv乘以Δt,就等于Δs(距离),积分起来(就是累加),就能获得t1-t0时间内运行的距离。
这个思维应用很广,比如如何求交流电的电流有效值?以市电50HZ为例,整流后为100hz,在一个周期0.01秒内测100次,间隔时间平均,就是0.00001秒测一次电流,那么这个周期内的平均有效电流就是sqrt[(It1²+It2²+It2²…………It98²+It99²)/100],sqrt = Square Root Calculations(平方根计算),Itn=你定时测量的数值,n的取值,决定了这个结果的精确度,越大越精确。还有很多很多的应用,微分到积分的计算。所以,要记住,程序就是天然的对时间的微分。这个有助你对好多事情的理解。
3,连续–离散。这个前面说了,程序就是离散的,但是很多连续的事情,可以用离散来表达。
学过信号学的,都知道,示波器的原理就是如此。你要看到一个有效波形,就要高于信号频率5倍以上的采样率,就是我们做一个市电的示波器,你用250HZ的频率去采样,就能体现出市电的特征。采样频率越高,越精确,但是数据量越大。
继续举个例子,比如按键检测,一般人手按键的频率,能达到5HZ就很高了,就是一秒能按5下,就算某人单身30年+天赋异禀,手速翻倍,达到10HZ,那我们用50HZ的采样率,就不会错过任何一次按键,这就是为什么我们用10ms~40ms间隔去采样按键的原因,而不需要一直去检测按键。
因为连续和离散的关系,当你拿到任何项目,你首先的想法是,我这个项目的核心事情,我大概多大的频率去做就行了,这是基调,然后次要的事情,定个频率,处理好优先级关系,程序定时,分时处理各项事情,这就是一个嵌入式单片机程序的基本思维。

思维篇结束了。架构和思维是息息相关的,从离散的,机器的思维出发,搭出一个更加适用于单片机的程序架构。

嵌入式单片机编程入门心得–架构篇

嵌入式单片机编程入门心得——思维篇相关推荐

  1. 适合自学单片机c语言教材,单片机编程入门看什么书 盘点单片机初学者适合看的书...

    本篇文章盘点:单片机编程入门看什么书.其实学习单片机重点就是C语言,其次实践重要,学习单片机不光要看书,建议初学者多多实践,自己做一些尝试性的开发.话不多说,下面就来盘点,初学者单片机编程入门适合看什 ...

  2. 51单片机编程入门用什么单片机比较好?

    每个男人心中其实都有一个"钢铁侠"梦. 希望自己拥有像男主一样的技术,通过技术去改变世界. 不过想做到这一步,需要学的东西实在太多太多,可能这辈子都学不完. 就是这种遥不可及的事情 ...

  3. 单片机编程入门学习 这几问你能回答吗?

    单片机编程入门学习前,大家即使对单片机的了解浅薄,相信也明白C语言在单片机学习的重要性.至于再深入,可能就比较懵逼了. 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记 ...

  4. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈

    单片机编程软件为常用软件之一,单片机开发人员均用过多款单片机编程软件.那么,用单片机编程软件进行开发时,大家是否有独特新得呢?本文对单片机编程软件的讲解基于Keil C51,主要为大家介绍使用这款单片 ...

  5. python单片机编程入门先学什么_编程入门必看:带你零基础了解编程和编程语言,入门应该学什么?...

    编程入门 什么是编程 我们通过有固定格式和固定词汇的"语言"来控制他人,让他人为我们做事情.语言有很多种,包括汉语.英语.法语.韩语等,虽然他们的词汇和格式都不一样,但是可以达到同 ...

  6. 嵌入式单片机编程魔法之三权分立

    关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂. 而事实上,根据编程魔法之思想,对 ...

  7. [转]C语言嵌入式系统编程修炼之背景篇

    http://www.2ed.cn/Article-150-21922.shtml 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑, ...

  8. 单片机魔法编程百度云_嵌入式单片机编程魔法之三权分立~

    在单片机编程中,有很多人会因为一些貌似简单的处理而把问题弄得乱七八糟,如林中蛛网一样,错综复杂. 而事实上,根据编程魔法之思想,对程序处理的过程严格划分部门.各施其职.部门内部互不干涉内政,是成功编程 ...

  9. 嵌入式c语言检测键盘,【精华整理】C语言嵌入式系统编程修炼--键盘操作篇

    计算机学的许多知识都具有相通性,因而,不断追赶时髦技术而忽略基本功的做法是徒劳无意的.我们最多需要"精通 "三种语言,最佳拍档是汇编.C.C++(或JAVA),很显然,如果你&qu ...

最新文章

  1. 大众高层:中国将成为全球自动驾驶软件研发中心
  2. 四年级计算机考试反思,考试后的反思四年级作文
  3. 【IBatis.Net】 各种配置说明
  4. 如何在虚拟机上安装wsus服务器,如何在Hyper-V虚拟机上安装WSUS服务器技巧
  5. 【错误记录】python requests库 Response 判断坑
  6. 从零学web前端_从零到前端英雄(第1部分)
  7. Flask学习之基础知识与功能
  8. 大数据之-入门_大数据部门业务流程分析---大数据之hadoop工作笔记0006
  9. centos安装最新的visual studio code并设置中文
  10. 5G 十项全能、搭载麒麟 820 芯片,1899 元起的荣耀 X10 来了!
  11. mysql 作业调度及问题解决
  12. python中pygame放入图_python使用PyGame绘制图像并保存为图片文件的方法
  13. SQLite Developer破解 cmd 运行 reg delete HKEY_CURRENT_USER\SharpPlus\SqliteDev /v StartDate /f
  14. HDU 4565(矩阵快速幂)
  15. android拦截返回键home键,android屏蔽返回键跟Home键
  16. linux删除 grub rescue,删除Ubuntu后 开机grub rescue无法进入BIOS
  17. Spring Cloud Gateway 服务网关的部署与使用详细介绍
  18. 贝尔曼方程怎么解_强化学习系列(下):贝尔曼方程
  19. java模拟KTV点歌系统
  20. #C语言[Basic I/O] A-B

热门文章

  1. 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  2. Python机器学习之旅-1.聚类_KMeans
  3. 大数据一些启动脚本和采集脚本
  4. 百度云管家 v5.4.5 SVIP 单文件版
  5. 【转载】尼康D90购机指南
  6. java redis快速入门_快速入门Redis系列(3)——Redis的JavaAPI操作(附带练习)
  7. SQL Server两表比对数据
  8. 中国车联网行业发展现状调查与未来前景趋势报告2021-2027年
  9. 情人节表白浪漫婚礼相册PPT模板
  10. Cocos2d-x教程(6)-粒子效果