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

网站数据库如何建设做网站样式模板

网站数据库如何建设,做网站样式模板,高唐网站,哈尔滨网络营销推广软件1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentTaskHandle()获取当前正在运行的任务的任务句柄xTaskGetHandle()根据任务名字查找某个任务的句柄xTaskGetIdleTaskHandle()获取空闲任务的任务句柄uxTaskGetStackHighWaterMark()获取任务的堆栈的历史剩余最小值FreeRTOS 中叫做“高 水位线”eTaskGetState()获取某个任务的壮态这个壮态是 eTaskState 类型pcTaskGetName()获取某个任务的任务名字xTaskGetTickCount()获取系统时间计数器值xTaskGetTickCountFromISR()在中断服务函数中获取时间计数器值xTaskGetSchedulerState()获取任务调度器的壮态开启或未开启uxTaskGetNumberOfTasks()获取当前系统中存在的任务数量vTaskList()以一种表格的形式输出当前系统中所有任务的详细信 息vTaskGetRunTimeStats()获取每个任务的运行时间vTaskSetApplicationTaskTag()设置任务标签(Tag)值。SetThreadLocalStoragePointer()设置线程本地存储指针GetThreadLocalStoragePointer()获取线程本地存储指针 2、任务相关API函数的使用 使用每个API函数的时候都右键转到定义位置如下图 然后查看函数的使用条件比如这个函数要使用的话必须将宏 INCLUDE_uxTaskPriorityGet 置1 然后以同样的操作转到这个宏的位置将其置1。然后再开始调用API函数。 如下为几个常用API函数的使用 uint8_t i0;UBaseType_t priority_num0;UBaseType_t task_num0;UBaseType_t task_num20;TaskStatus_t * status_array0;TaskStatus_t * status_array20;TaskHandle_t task_handle0;UBaseType_t task_stack_min0;eTaskState task_state0;char pcWriteBuffer[300];//获取任务优先级priority_num uxTaskPriorityGet( task2_handler );printf(task2的任务优先级%ld\r\n,priority_num);//设置任务优先级vTaskPrioritySet( task2_handler,6 );priority_num uxTaskPriorityGet( task2_handler );printf(task2的任务优先级%ld\r\n,priority_num);//获取系统任务数量task_num uxTaskGetNumberOfTasks();printf(系统任务数量%ld\r\n,task_num);//获取系统所有任务的任务状态信息status_arraypvPortMalloc(sizeof(TaskStatus_t)*task_num);task_num2 uxTaskGetSystemState(status_array,task_num,NULL);printf(任务名\t\t任务优先级\t\t任务编号\r\n);for(i0;itask_num2;i){printf(%s\t\t%ld\t%ld\r\n,status_array[i].pcTaskName,status_array[i].uxCurrentPriority,status_array[i].xTaskNumber);}//获取指定任务的任务状态status_array2pvPortMalloc(sizeof(TaskStatus_t));vTaskGetInfo(task2_handler,status_array2,pdTRUE,eInvalid);printf(任务名%s\r\n,status_array2-pcTaskName);printf(任务优先级%ld\r\n,status_array2-uxCurrentPriority);printf(任务编号%ld\r\n,status_array2-xTaskNumber);printf(任务状态%d\r\n,status_array2-eCurrentState);//根据任务名获取任务句柄task_handle xTaskGetHandle(task2);printf(任务句柄为%#x\r\n,(int)task_handle);printf(任务句柄为%#x\r\n,(int)task2_handler);//查询某个任务的运行状态task_state eTaskGetState(task2_handler);printf(task2的任务状态为%d\r\n,task_state);//获取系统中任务信息vTaskList(pcWriteBuffer);printf(%s\r\n,pcWriteBuffer); 3、任务时间统计API函数 vTaskGetRunTimeStats() void vTaskGetRunTimeStats( char *pcWriteBuffer ) 该函数与获取系统任务信息类似参数是一个数组用来存放任务信息。如下代码是统计系统任务的运行时间并打印出来。 void task2( void * pvParameters ) {u8 key0;while(1){keyKEY_Scan(0);if(keyKEY1_PRES){vTaskGetRunTimeStats(pcWriteBuffer);printf(任务名\t\t\t运行时间\t运行所占百分比\r\n);printf(%s\r\n,pcWriteBuffer);}vTaskDelay(100);} } 使用该函数需要注意的点 1、需要将宏 configGENERATE_RUN_TIME_STATS 置1 2、需要将宏 configUSE_STATS_FORMATTING_FUNCTIONS 置1 3、在将1完成后需要实现 portCONFIGURE_TIMER_FOdR_RUN_TIME_STATS() 宏和 portGET_RUN_TIME_COUNTER_VALUE() 宏 portCONFIGURE_TIMER_FOdR_RUN_TIME_STATS() 用来初始化用于配置任务运行时间统计的时基定时器时基定时器的精度必须高于系统时钟节拍精度的10到100倍。系统时钟节拍如果是1ms时基定时器节拍就得在10us到100us之间。 portGET_RUN_TIME_COUNTER_VALUE() 用于获取定时器计数的计数值。 定时器使用stm32的内部定时器3在 ConfigureTimeForRunTimeStats() 中初始化定时器并配置为每10us中断一次然后在中断服务函数中将 FreeRTOSRunTimeTicks从而达到计时的目的。宏的实现如下代码 timer.c: #include timer.h #include led.h #include led.h #include usart.hvolatile unsigned long long FreeRTOSRunTimeTicks;//初始化TIM3使其为FreeRTOS的时间统计提供时基 void ConfigureTimeForRunTimeStats(void) {//定时器3初始化定时器时钟为72M分频系数为72-1所以定时器3的频率//为72M/721M自动重装载为10-1那么定时器周期就是10usFreeRTOSRunTimeTicks0;TIM3_Int_Init(10-1,72-1); //初始化TIM3 }//通用定时器3中断初始化 //这里时钟选择为APB1的2倍而APB1为36M //arr自动重装值。 //psc时钟预分频数 //这里使用的是定时器3! void TIM3_Int_Init(u16 arr,u16 psc) {TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能//定时器TIM3初始化TIM_TimeBaseStructure.TIM_Period arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler psc; //设置用来作为TIMx时钟频率除数的预分频值TIM_TimeBaseStructure.TIM_ClockDivision TIM_CKD_DIV1; //设置时钟分割:TDTS Tck_timTIM_TimeBaseStructure.TIM_CounterMode TIM_CounterMode_Up; //TIM向上计数模式TIM_TimeBaseInit(TIM3, TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断//中断优先级NVIC设置NVIC_InitStructure.NVIC_IRQChannel TIM3_IRQn; //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 4; //先占优先级4级NVIC_InitStructure.NVIC_IRQChannelSubPriority 0; //从优先级0级NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; //IRQ通道被使能NVIC_Init(NVIC_InitStructure); //初始化NVIC寄存器TIM_Cmd(TIM3, ENABLE); //使能TIMx }//定时器3中断服务函数 void TIM3_IRQHandler(void) {if(TIM_GetITStatus(TIM3,TIM_IT_Update)SET) //溢出中断{FreeRTOSRunTimeTicks;}TIM_ClearITPendingBit(TIM3,TIM_IT_Update); //清除中断标志位 }timer.h: #ifndef __TIMER_H #define __TIMER_H #include sys.h void ConfigureTimeForRunTimeStats(void); extern volatile unsigned long long FreeRTOSRunTimeTicks; void TIM3_Int_Init(u16 arr,u16 psc); void TIM5_Int_Init(u16 arr,u16 psc); #endif
http://www.hkea.cn/news/14506728/

相关文章:

  • 网站做淘宝联盟网络推广软文怎么写
  • 图书管理系统网站开发绪论佛山个性化网站搭建
  • 哈尔滨电子网站建设郑州百度搜索优化
  • 常见制作网页的软件seo怎么弄
  • 赣州市网站开发公司开发网站用什么工具做设计
  • 三峡建设管理有限公司网站网站怎么优化排名
  • 芜湖营销网站建设网络网站建设属于什么费用
  • 利用免费网站做SEO作业网站的设计制作案例
  • 网站后台添加新闻郑州巩义网站建设
  • 建个网站有收网站设计建设介绍
  • 网站如何接入支付宝卢氏住房和城乡建设厅网站
  • 安徽住房与城乡建设部网站上海都市建筑设计有限公司
  • 网站打开速度慢wordpress网站推广策划书的共同特点有哪些
  • 网站的标签怎么修改国外网站
  • 洛阳网站建设多少钱福州网站怎么做seo
  • 个人网站建设的目的网站后台的东西都是要上传到在虚拟主机上面吗
  • 如何连接到网站服务器无锡市建设工程质监站网站
  • 建立网站的基本条件厦门企业制作网站
  • 石家庄做网站推广最新wordpress教程
  • 招生平台网站开发公众号开发者
  • 怎么在百度上创建网站购物网站如何做
  • 备案网站主办者承诺书网站建设明薇通网络售后好
  • 网站开发人员应该用什么浏览器以背景做网站视频为
  • 本地扬中网站建设长沙公共资源交易电子服务平台
  • 盐城做网站的哪家公司好网站后台怎样批量上传
  • 网站建设 绵阳医疗网站跳出率
  • 网站 模板 安装app开发一般收费
  • 景安建网站网站建设选天祥
  • 计算机网站开发工作证wordpress 百度优化
  • 宁德市住房和城乡建设局网站打不开免费域名注册永久