嵌入式单片机编程入门心得——思维篇

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

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

程序就是思维,所以和人的想法息息相关,接下来,就要分析一下人的思维方式。
我们从小到大,接触到的,习惯性的,就是连续的思维:你跑步,是连续的,你喝水,是连续的,你看电影,也是连续的,上课学习,更要连续,不然如那个笑话所说,上课一晃神,老师原本两行的黑板书,变成了满黑板。
但是,程序的核心,他就是离散的。运行节拍来自晶振,微观层面,就是离散的,更多的方面,就不解释了。
所以,要入门,必须搞清楚一些概念:模拟–数字,连续–离散。入门程序的第一件事,是抛弃连续思维,进入离散思维。其实教科书也说了,离散数学,是计算机科学的核心基础学科,相信大部分人看过也忘了,在此提醒一下各位初学者。
再谈一些单片机必须掌握的一些概念,然后详细解释一下:
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间隔去采样按键的原因,而不需要一直去检测按键。
因为连续和离散的关系,当你拿到任何项目,你首先的想法是,我这个项目的核心事情,我大概多大的频率去做就行了,这是基调,然后次要的事情,定个频率,处理好优先级关系,程序定时,分时处理各项事情,这就是一个嵌入式单片机程序的基本思维。

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

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

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值