当前位置: 首页 > news >正文

dede仿站/google搜索引擎下载

dede仿站,google搜索引擎下载,微信创建公众号,万网 速成网站来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)作者:韦东山本文字数:1353,阅读时长:3分钟在后续我们对讲解多个传感器,这几个传感器对时序的要求都比较高,比如温湿度传感…
4c8bf597159c667154d175d1e0c3d7e8.png

来源:百问网_嵌入式Linux wiki_jz2440 新1期视频维基教程 (视频文字版)

作者:韦东山

本文字数:1353,阅读时长:3分钟

在后续我们对讲解多个传感器,这几个传感器对时序的要求都比较高,比如温湿度传感器DH11,查看芯片手册时序,至少就需要微秒级的延时函数。

延时函数的方式一般有两种:

  • ①:使用for循环,利用示波器等工具测得精确值;
  • ②:使用定时器,通过不断检测定时器的计数值获得精确时间;

使用for循环的方式,可能会因为硬件的差异,导致延时函数不准,因此这里我们使用定时器的方式。

打开之前的timers.c文件,修改timer_init函数的配置。

PCLK仍然等于50000000,将prescaler value改为4,divider value设置为2,

这样,每减1, 对应0.2us;每减5, 对应1us;从50000减到0,对应10ms。

修改对应的寄存器:

TCFG0 = 4;  /* Prescaler 0 = 4, 用于timer0,1 */TCFG1 &= ~0xf; /* MUX0 : 1/2 *//* 设置TIMER0的初值 */TCNTB0 = 50000;  /* 10Ms中断一次 */

我们先写一个us延时的函数,然后ms延时就调用us即可。

因此,us延时函数里,尽量少调用函数。

假如现在要延时nus,我们先将n*5,得到nus对应的“计数时钟数”。

然后如果传入“计数时钟周期”如果大于0,则一直计算过去了多少个“计数时钟数”,与传入的“计数时钟数”相减,直到为零,退出循环,也就实现了延时nus。

怎样计算过去了多少个“计算周期”呢?

自然是当前的值,减去一开始进入函数的值。

但还有一种情况是定时器里的计数记到0时,会自动变成5000,计数计数,这时候,计算方式就变成了pre+(5000-cur):

800a19135b15152d5f6ccc1fe3590c1c.png
/* 尽量少调用函数 */void udelay(int n){int cnt = n * 5;  /* u us 对应n*5个计数值 */int pre = TCNTO0;int cur;int delta;while (cnt > 0){cur = TCNTO0;if (cur <= pre)delta = pre - cur;elsedelta = pre + (50000 - cur);cnt = cnt - delta;pre = cur;}}

然后是ms延时函数:

void mdelay(int m){udelay(m*1000);}

我们可以写一个测试函数,简单的测试下是否可用,测试函数隔1分钟进行打印一下。

如果us不准的话,放大至s,会有比较大的偏差,这样可以进行粗略的检测,精确检测可以使用示波器等工具。

void hrtimer_test(void){int cnt = 0;while (1){printf("delay one min: ");mdelay(60000); /* 延时1分钟 */printf("%d", ++cnt);}}

前面延时里的计算还是比较耗费时间的,因此,我们尽量提高CPU的运行时钟,并且 将尽可能的启动icache、dcache和mmu。

此外,如果延时过程中,发生了中断,如果中断比较耗时的话,就会导致延时可能出现不准确,所以,我们可以延时之前关中断, 延时之后开中断;

课后作业:

  • a. 禁止icache, 禁止mmu, 修改lds, 测试延时函数是否还准确;
  • b. 测试延时之前关中断, 延时之后开中断;

「新品首发」STM32MP157开发板火爆预售!首批仅300套

http://www.lbrq.cn/news/740575.html

相关文章:

  • 制造网站建设哪家好/淘宝关键词优化怎么弄
  • 湖北移动网站建设/网络优化是做啥的
  • 做网站用的云控制台/国外免费建站网站
  • 惠州定制网站制作推荐/国内哪个搜索引擎最好用
  • 最快网站备案/国家免费职业培训平台
  • 乙方宝招标官网/宁波网站推广优化哪家正规
  • 做单页网站的软件/seo关键词排名优化案例
  • 专业长春网站建设哪家好/最新推广赚钱的app
  • 北京未来科技城开发建设有限公司 网站/四年级下册数学优化设计答案
  • 连云港网站建设方案/西安企业seo外包服务公司
  • 专业做网站建/如何自己建设网站
  • 网站开发毕业设计源码/地推拉新app推广怎么做
  • 可以做立体图形的网站/怎样看网页的友情链接
  • 企业官方网站的作用/网页制作用什么软件做
  • 百度不收录网站关键词/大数据营销系统多少钱
  • 招聘网站可以做两份简历吗/企业网站快速建站
  • 如何重装一下wordpress/seocms
  • 手机版网站怎样做推广/南宁一站网网络技术有限公司
  • wordpress机械行业模板/网站内容优化怎么去优化呢
  • 平台骗了钱/长沙seo管理
  • 网站和app设计区别/网络营销策划书1500字
  • 河北网站建设备案价格/企业网站建设原则是
  • 从手机上可以做网站吗/公众号推广方法
  • 道路建设网站专题/免费关键词排名优化
  • 深圳建站公司招聘/外贸营销网站怎么建站
  • 淘宝客网站怎么做的/微信crm系统
  • 莱芜找工作网站/2345网址中国最好
  • 建设事业单位网站多少钱/推广普通话手抄报内容怎么写
  • 茶叶网站模板/西安seo全网营销
  • 网站设计团队介绍/龙华百度快速排名
  • JSON::Value 功能详解:从三目运算符到高级用法
  • Altium Designer 22使用笔记(8)---PCB电气约束设置
  • 字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent
  • 决策树剪枝及数据处理
  • kkfileview预览Excel文件去掉左上角的跳转HTM预览、打印按钮
  • 可靠性测试:软件稳定性的守护者