当前位置:网站首页>能做多大的单片机项目程序开发,就代表了你的敲代码的水平
能做多大的单片机项目程序开发,就代表了你的敲代码的水平
2022-04-23 02:31:00 【林老师授单片机】
能做多大的单片机项目程序开发,就代表了你的敲代码的水平
不一定非要多好,但是至少在对应的时间能达到对应的水平。
新手前期做项目写代码以实现功能为主,特别是51单片机,你代码写好了内存也未必够你用。
在你没接触过大项目程序开发的时候,你根本不知道代码的好坏,在功能上有什么区别,
反正都能实现功能对吧?
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我或者看个人简介就可以找到我哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
等你真正碰到一些大项目的时候,如果你代码水平不行,肯定是做不出来的。
代码量大了你Hold不住,不知道怎么去整合,整合完以后功能之间也有冲突。
最后好不容易整合好了,又发现移植性太差,可扩展性太差,万一项目经理让你增加或者改个功能,你就挂逼了。
这个时候就是你该去思考怎么样把代码写得更好的时候了。
因为你知道痛点在哪里了,在针对这个痛点去找解决的办法。
最好的方法依然是去参考,写程序比你厉害的人。
你再针对性去学习,比如说看我录制的那个程序架构教程。
我那个教程就是我这么多年产品开发当中碰到问题,再学习解决,最终总结出来的精华。
文章字数可能比较多,打开头像关注我,之后翻找会比较容易,有特殊需求可以输入口令“林老师”查看干货。
如何让红外遥控产生38K的载波,实际上就是控制它的亮和灭的时间,低电平低时候亮,亮高电平的时候灭,让它亮灭亮灭就实现38K了,然后再搞循环,让它亮灭亮灭560个微秒,然后再把它关掉,这个时候就产生的是比特0。
如果当前这些位从这里面取出来,当前这位是1,如果说传出的比特为1的话,它产生的还是560个微秒的红外脉冲,也就是说不停的闪烁,产生38K的闪烁560个微秒,然后要把它熄灭,熄灭的时间和我们传输比特0的时间就不一样了,它要熄灭1.685个毫秒,这个大家要注意,这里说的这个传输比特0和传输比特1指的就是通和断的时间控制,通一定要注意是通的不是灯点亮通的,是这个灯的闪烁时间,闪烁的频率是38K,位1无红外光是1.685个毫秒,位0无红外光是0.56个毫秒。
这样的话就可以传输比特0和比特1,然后按照这个方式就可以去发射了,首先产生红外脉冲,也就是产生38K9毫秒,然后不产生4.5毫秒,这个就代表引导码,接着传输的是用户码,然后把这个用户码当中的每比特位都取出来,取出来之后来判断当前这个比特位是0还是1,这样的话就发射出去了,接着发命令码一样的道理,如果命令码当中的当前位置是0,那就是通38K560个微秒。
然后不同也就是断开,不让它产生红外光560个微秒,大家如果说看着代码在参考这个图就很容易理解,NEC编码的格式和解码都是按这个来做的,编码格式就是第一步先发引导码,载波发射9毫秒加载波不发射4.5毫秒,载波一发射就是这个管子产生9毫秒的38K的闪烁,这个就是这个载波的含义,然后接着发低八位低用户码和高八位的用户码的反码,然后接着就是八位的数据码和八位数据码的反码,这些位里面的数据都是要取出来,它当前的位是0还是一,然后按照这种方式去传输0和传输1,最后就是结束码,结束码上就是发送比特位0。
下一期会给大家讲解如何来实现38K的载波,以及如何来利用这个协议来编写代码,我们的课程会用软件来介绍如何实现红外遥控的编码功能,有兴趣可以关注一下,大家可以先看一下上面这个图简单介绍一下38K载波如何来实现,实际上38K载波一般是用的是1 : 3的,也就说发射的载波的它的红外占空比一般是1 : 3。
对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取
版权声明
本文为[林老师授单片机]所创,转载请带上原文链接,感谢
https://wechat2595852316.blog.csdn.net/article/details/124357665
边栏推荐
- Lane cross domain problem
- tp6阿里云短信 window 报 cURL error 60: SSL certificate problem: unable to get local issuer certificate
- Time. In ANSI standard library H header file
- Parental delegation model [understanding]
- Execute external SQL script in MySQL workbench and report error
- Leetcode40 - total number of combinations II
- 【ValueError: math domain error】
- 002_Redis_String类型常见的操作命令
- [xjtu Computer Network Security and Management] session 2 Cryptographic Technology
- [suggestion collection] hematemesis sorting out golang interview dry goods 21 questions - hanging interviewer-1
猜你喜欢
MySQL C language connection
每日一题冲刺大厂第十六天 NOIP普及组 三国游戏
Usage of vector common interface
They are all intelligent in the whole house. What's the difference between aqara and homekit?
009_Redis_RedisTemplate入门
How does Axure set the content of the text box to the current date when the page is loaded
每日一题(2022-04-21)——山羊拉丁文
Lane cross domain problem
009_ Redis_ Getting started with redistemplate
Applet canvas canvas half ring
随机推荐
They are all intelligent in the whole house. What's the difference between aqara and homekit?
Leetcode39 combined sum
Startup of openstack service
012_ Access denied for user ‘root‘@‘localhost‘ (using password: YES)
一个国产图像分割项目重磅开源!
006_redis_SortedSet类型
Develop a chrome plug-in from 0 (2)
【2019-CVPR-3D人体姿态估计】Fast and Robust Multi-Person 3D Pose Estimation from Multiple Views
本地远程访问云服务器的jupyter
013_ Analysis of SMS verification code login process based on session
手写内存池以及原理代码分析【C语言】
Hyperscan -- 2 compilation
The usage and difference of * and & in C language and the meaning of keywords static and volatile
每日一题(2022-04-22)——旋转函数
从开源爱好者到 Apache 董事,一共分几步?
VMware virtual machine installation openwrt as side route single arm route img image to vmdk
程序设计天梯赛 L1-49 天梯赛分配座位(模拟),布响丸辣
Leetcode40 - total number of combinations II
想体验HomeKit智能家居?不如来看看这款智能生态
小程序 读取文件