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

微网站定制wordpress评论编辑器

微网站定制,wordpress评论编辑器,做商务网站服务,专业企业网站开发联系电话系统时钟 //初始化延迟函数 //SYSTICK的时钟固定为AHB时钟,基础例程里面SYSTICK时钟频率为AHB/8 //这里为了兼容FreeRTOS,所以将SYSTICK的时钟频率改为AHB的频率! //SYSCLK:系统时钟频率 /* 系统定时器是一个 24bit 的向下递减的计数器&…

系统时钟

//初始化延迟函数
//SYSTICK的时钟固定为AHB时钟,基础例程里面SYSTICK时钟频率为AHB/8
//这里为了兼容FreeRTOS,所以将SYSTICK的时钟频率改为AHB的频率!
//SYSCLK:系统时钟频率
/*  系统定时器是一个 24bit
的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系统时钟 SYSCLK
等于168M*/
void delay_init(u8 SYSCLK) 
{u32 reload;SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); /* 系统滴答定时器时钟源初始化 使用时钟源为 SysTick_CLKSource_HCLK  HCLK代表CPU时钟*/fac_us=SYSCLK;							//不论是否使用OS,fac_us都需要使用reload=SYSCLK;							//每秒钟的计数次数 单位为M	   reload*=1000000/configTICK_RATE_HZ;		//根据configTICK_RATE_HZ设定溢出时间  reload=168000//reload为24位寄存器,最大值:16777216,在168M下,约合0.0998s左右	fac_ms=1000/configTICK_RATE_HZ;			//代表OS可以延时的最少单位	    fac_ms = 1SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;//开启SYSTICK中断SysTick->LOAD=reload; 					//每1/configTICK_RATE_HZ断一次	/* 0.0001s 中断一次LOAD重装载值 SYSCLK=168 计算 reload=16800   按HCLK为168M算 1/168M * 16800=0.0001s*/SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //开启SYSTICK     
}	
//延时nus
//nus:要延时的us数.	
//nus:0~204522252(最大值即2^32/fac_us@fac_us=168)	    								   
void delay_us(u32 nus)
{		u32 ticks;u32 told,tnow,tcnt=0;u32 reload=SysTick->LOAD;				//LOAD的值	    	 ticks=nus*fac_us; 						//需要的节拍数  reload值并不会影响时基(1/HCLK)也就是不会影响一个节拍的时长进而不会影响us reload会影响systick中断频率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;			//时间超过/等于要延迟的时间,则退出.}  };										    
}  
//延时nms
//nms:要延时的ms数
//nms:0~65535
void delay_ms(u32 nms)
{	if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系统已经运行{		if(nms>=fac_ms)						//延时的时间大于OS的最少时间周期 { vTaskDelay(nms/fac_ms);	 		//FreeRTOS延时   fac_ms=1 也就是说>1ms的ms延时都是使用的vTaskDelay}nms%=fac_ms;						//OS已经无法提供这么小的延时了,采用普通方式延时    }delay_us((u32)(nms*1000));				//普通方式延时
}//延时nms,不会引起任务调度
//nms:要延时的ms数
void delay_xms(u32 nms)
{u32 i;for(i=0;i<nms;i++) delay_us(1000);
}

vTaskDelay完成
1调用vTaskSuspendAll()挂起任务调度器,
2调用 prvAddCurrentTaskToDelayedList( xTicksToDelay, pdFALSE );将要延时的任务添加到延时列表中
3xAlreadyYielded = xTaskResumeAll(); 调用 xTaskResumeAll();恢复任务调度
4.如果发生任务调度调用portYIELD_WITHIN_API();产生任务调度。

#if ( INCLUDE_vTaskDelay == 1 )void vTaskDelay( const TickType_t xTicksToDelay ){BaseType_t xAlreadyYielded = pdFALSE;/* A delay time of zero just forces a reschedule. */if( xTicksToDelay > ( TickType_t ) 0U ){configASSERT( uxSchedulerSuspended == 0 );vTaskSuspendAll();{traceTASK_DELAY();/* A task that is removed from the event list while thescheduler is suspended will not get placed in the readylist or removed from the blocked list until the scheduleris resumed.This task cannot be in an event list as it is the currentlyexecuting task. */prvAddCurrentTaskToDelayedList( xTicksToDelay, pdFALSE );}xAlreadyYielded = xTaskResumeAll();}else{mtCOVERAGE_TEST_MARKER();}/* Force a reschedule if xTaskResumeAll has not already done so, we mayhave put ourselves to sleep. */if( xAlreadyYielded == pdFALSE ){portYIELD_WITHIN_API();}else{mtCOVERAGE_TEST_MARKER();}}#endif /* INCLUDE_vTaskDelay */
http://www.yayakq.cn/news/880250/

相关文章:

  • flash类网站开发杭州十大跨境电商排名
  • 建设龙卡e付卡网站基于h5的wap网站开发
  • 怎么利用网站做淘宝客卖货平台有哪些
  • wep购物网站开发模板德州做网站公司排行
  • 计算机培训中心网站做企业展示网站需要多少钱
  • 蓝色高科技网站模板常州网站公司
  • 网站设计公司网站制作企业网站建设模板多少钱
  • 企业网站剖析中国万网注册网站
  • 网站最好的优化是什么英文学习网站
  • 网站设计论文范文大全集做网站大约要多少钱
  • 微信公众号做网站卖东西需要大量做网站做推广的行业
  • 创办网站需要哪些步骤wordpress怎么下载
  • 做相亲网站犯法吗wordpress在图片上加链接
  • 食品电子商务网站建设规划书网站被重定向跳转
  • 企业做网站有什么好处修改wordpress语言设置
  • 网站转小程序工具小程序源码抓取工具
  • 池州网站建设哪家好怎么修改网站首页html代码
  • 电商运营有几大平台班级优化大师app下载学生版
  • 网站建设vip教程iis 网站301重定向
  • 太原铁路建设有限公司网站网站设计分析报告
  • 南山网站建设深圳信科企业网站建设费用记入什么科目
  • 新网站建设一般多少钱郑州设计院排名
  • 信阳做网站公司小网站代码
  • 深圳建筑工地招工东莞seo网站排名
  • 汽车电子商务网站建设2023年最新新闻摘抄
  • 友山建站优化网优 是什么网站
  • 网站开发背景意义网站可以查出在哪里做的吗
  • 小程序代码seo 深圳
  • 江北网站建设的技术百度搜索到自己的网站
  • 网站建设文化信息wordpress时尚主题