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

推广 高端网站设计黑龙江建设网ca数字证书如何注销

推广 高端网站设计,黑龙江建设网ca数字证书如何注销,深圳市住房和建设局网站变更,雷达图 做图网站STM32在FreeRTOS下的us延时 前言 freeRTOS下跑SPI时需要微秒级别的延时,但是freeRTOS只提供了毫秒级的,记录一下实现us延时的方法。 前期分析 最简单的方式就是开个定时器或者干脆直接计算一下用nop做都可以实现us延时,但是显然还是使用滴…

STM32在FreeRTOS下的us延时

前言

freeRTOS下跑SPI时需要微秒级别的延时,但是freeRTOS只提供了毫秒级的,记录一下实现us延时的方法。

前期分析

最简单的方式就是开个定时器或者干脆直接计算一下用nop做都可以实现us延时,但是显然还是使用滴答定时器更为优雅。
滴答定时器(SysTick)挂在NVIC上,是一个24位的减数定时器,通过STK_LOAD寄存器控制其重装载值,STK_VAL寄存器存储了当前的计数值,因此实现思路如下:
1、计算延时器件要计的计数值
2、关闭任务调度(防止延时的时候被任务调度器打断)
3、获取当前重装载值(当触发了重装载以后计算需要使用)
4、获取开始延时时寄存器里面的计数值
5、不断获取当前的计数值
6、当当前计数值大于需要计的计数值时,退出延时

步骤1

滴答定时器(SysTick)的时钟输入为HCLK的八分频,则其最小频率也大于1MHZ,因此直接拿其时钟频率除1M,则可以得到计时1us所需要的计数值,通过与目标延时时间(单位为us)相乘,即可以得到总计数时间。

步骤2

任务调度的开关需要使用到调度锁,其概念如下:
调度锁就是 RTOS 提供的调度器开关函数,如果某个任务调用了调度锁开关函数,处于调度锁开和调度锁关之间的代码在执行期间是不会被高优先级的任务抢占的,即任务调度被禁止。这一点要跟临界段的作用区分开,调度锁只是禁止了任务调度,并没有关闭任何中断,中断还是正常执行的。而临界段进行了开关中断操作。
打开调度锁(禁止任务调度)

vTaskSuspendAll()

关闭调度锁(允许任务调度)

xTaskResumeAll(void)

步骤3、4、5

获取当前滴答定时器的重装载值可以通过读取LOAD寄存器实现

told=SysTick->VAL; 

读取当前计数值通过寄存器VAL实现

tnow=SysTick->VAL;	

实现代码

//nus为要延时的us数.		    								   
void delay_us(u32 nus)
{		u32 ticks;u32 told,tnow,tcnt=0;u32 reload=SysTick->LOAD;						//LOAD的值	    	 ticks=nus*(SystemCoreClock/1000000); 	//需要的节拍数	  		 tcnt=0;vTaskSuspendAll();									//阻止OS调度,防止打断us延时told=SysTick->VAL;        					//刚进入时的计数器值while(1){tnow=SysTick->VAL;	if(tnow!=told){	    if(tnow<told)tcnt+=told-tnow;		//这里注意一下SYSTICK是一个递减的计数器就可以了.else tcnt+=reload-tnow+told;	    told=tnow;if(tcnt>=ticks)break;						//时间超过/等于要延迟的时间,则退出.}  };xTaskResumeAll();										//恢复OS调度									    
}
http://www.yayakq.cn/news/58574/

相关文章:

  • 怎么申请自己的网站网址怎样给公司做网站
  • 担路做网站网页制作教程图解
  • 做火情监控网站需要用什么系统地图网站抓取
  • 做个网站需要多久网站设计费用多少盐城网站建设找宇
  • 网站建设开发有什么好处中铁建设门户网登录咋进不去了
  • 网页设计简单的网站官方网站的必要性
  • 网址导航建站现代简约装修
  • 做婚恋网站有哪些中国电信备案网站
  • 备案做电影网站云服务器做网站新手教程
  • 巴中 网站建设分类目录 wordpress
  • 网站开发发展趋势2018电子商务网站建设实训心得体会
  • 海报石家庄网站建设优化
  • 昆明网上商城网站建设济南h5网站建设
  • php网站开发好学吗受欢迎的网站建设
  • 网站备案号要怎么查询建立网站需要钱吗
  • 企业建站系统开源深圳宝安通网站建设
  • 修改公司网站如何通过轻淘客做网站
  • 资讯门户类网站百度推广和百度竞价有什么区别
  • 网站建设及维护涉及哪些内容电子商务是干什么工作的
  • 西安网站建设瑞信郑州网络推广方法
  • 网站推广软文代发wordpress 获取评论id
  • 男的和女的做那个视频网站系统管理在哪里找怎么找
  • 柬埔寨做网站我做的网站怎么打开很慢
  • 网站建设咨询有客诚信asp网站源码下载
  • 瓷器网站怎么做怎么做盗文网站
  • 上海做网站比较有名的公司有哪些北京网站建设是什么
  • 2014网站设计风格微信公众号(网站建设)合同
  • 网站外链建设可以提升网站权重吗新华社两学一做网站
  • 制作一个网站需要多少时间公众号平台助手
  • 如何做一份网站的数据分析软件开发培训费用