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

网站设计公司南京wordpress调用分类的所有子目录

网站设计公司南京,wordpress调用分类的所有子目录,铁岭做网站包括哪些,怎样在百度上发布免费广告目录 一、SysTick定时器 1、SysTick寄存器介绍 #xff08;1#xff09;控制及状态寄存器 #xff08;2#xff09;重装载数值寄存器 #xff08;3#xff09;当前数值寄存器 2、SysTick寄存器配置函数 二、FreeRTOS中的SysTick定时器 1、SysTick配置函数及分析 …目录 一、SysTick定时器 1、SysTick寄存器介绍 1控制及状态寄存器 2重装载数值寄存器 3当前数值寄存器 2、SysTick寄存器配置函数 二、FreeRTOS中的SysTick定时器 1、SysTick配置函数及分析 2、SysTick中断函数 三、其他操作配置FreeRTOS的SysTick 1、找到头文件 FreeRTOSConfig.h 有如下定义。 2、搜索 configTICK_RATE_HZ在port.c中。 3、搜索 portNVIC_SYSTICK_CTRL_REG在port.c中。 4、下面证明地址是不是SYSTICK的配置地址。 5、跳转到 SysTick 定义处。 一、SysTick定时器 SysTick系统定时器是属于内核中的一个外设内嵌在NVIC中。该定时器是一个24位的向下递减的计数器。在裸机编程中常用做延时函数而在FreeRTOS中则用来给系统提供时钟的因此非常重要。 1、SysTick寄存器介绍 SysTick共有4个相关寄存器通常只用到3个(校准寄存器少用)。 寄存器名称寄存器描述CTRLSysTick控制及状态寄存器LOADSysTick重装载数值寄存器VALSysTick当前数值寄存器CALIBSysTick校准数值寄存器 1控制及状态寄存器 可通过读取第16位判断计数是否到0。 2重装载数值寄存器 用来存放重装载数的改变该值以调节计数时间。数值范围0—2^24-1即0-16777215。 3当前数值寄存器 该寄存器的值在递减计数到0时会自动重载数值为重装载数值寄存器内的值。 2、SysTick寄存器配置函数 在库文件core_cm4.h (M4内核)中有相关配置函数也可以重写。 __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) /*参数ticks为计数值,最大2^24(已有减1操作)*/ {if ((ticks - 1) SysTick_LOAD_RELOAD_Msk) return (1);/*判断传入的值是否满足不能超过0xffffff*/SysTick-LOAD ticks - 1; /*将数值传入重装载数值寄存器*/NVIC_SetPriority (SysTick_IRQn, (1__NVIC_PRIO_BITS) - 1); /*设置Systick中断优先级*/SysTick-VAL 0; /*清空当前值寄存器*/SysTick-CTRL SysTick_CTRL_CLKSOURCE_Msk |SysTick_CTRL_TICKINT_Msk |SysTick_CTRL_ENABLE_Msk; /* SysTick_CTRL_CLKSOURCE_Msk 12 *//* SysTick_CTRL_TICKINT_Msk 11 *//* SysTick_CTRL_ENABLE_Msk 10 *//*将第0、1、2位置1即使能定时器使能中断选择系统时钟168M或72M*/return (0); } 二、FreeRTOS中的SysTick定时器 在FreeRTOS中SysTick定时器尤为重要因为它是给FreeRTOS系统提供时钟的。在FreeRTOS中任务的切换即每个任务运行的时间是由SysTick定时器提供的。 1、SysTick配置函数及分析 在FreeRTOS中已经提供了SysTick配置的函数vPortSetupTimerInterrupt()函数在port.c文件中。当调用了开启任务调度函数vTaskStartScheduler()后里面就会调用该函数完成SysTick的配置。vPortSetupTimerInterrupt()函数分析   #if ( configOVERRIDE_DEFAULT_TICK_CONFIGURATION 0 ) /*条件编译*/__weak void vPortSetupTimerInterrupt( void ){/* Calculate the constants required to configure the tick interrupt. */#if ( configUSE_TICKLESS_IDLE 1 ) /*条件编译这段不编译*/{ulTimerCountsForOneTick ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ );xMaximumPossibleSuppressedTicks portMAX_24_BIT_NUMBER / ulTimerCountsForOneTick;ulStoppedTimerCompensation portMISSED_COUNTS_FACTOR / ( configCPU_CLOCK_HZ / configSYSTICK_CLOCK_HZ );}#endif /* configUSE_TICKLESS_IDLE */portNVIC_SYSTICK_CTRL_REG 0UL; /*清空控制及状态寄存器*/portNVIC_SYSTICK_CURRENT_VALUE_REG 0UL; /*清空当前值寄存器*//*设置重装载数值寄存器数值*//*168000000/1000 168000重装载值168000/168M0.001S1MS*/portNVIC_SYSTICK_LOAD_REG ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;/*设置控制及状态寄存器*/ portNVIC_SYSTICK_CTRL_REG ( portNVIC_SYSTICK_CLK_BIT | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT );/*( 1UL 2UL ) | ( 1UL 1UL ) | ( 1UL 0UL ) *//*选择处理器时钟、开定时器中断、使能定时器*/}#endif /* configOVERRIDE_DEFAULT_TICK_CONFIGURATION */ 2、SysTick中断函数 在SysTick中断函数中并不是直接执行任务切换而是将xTickCount进行加1操作xTickCount是FreeRTOS的系统时钟节拍数具体实现函数则是xTaskIncrementTick()该函数在中断函数中被调用。中断函数的实现在port.c文件中也有定义xPortSysTickHandler()因此在SysTick中断函数中直接调用该函数即可。 void SysTick_Handler(void) { if(xTaskGetSchedulerState()!taskSCHEDULER_NOT_STARTED) //系统已经运行{xPortSysTickHandler(); //调用port.c中已写好的中断函数}} 三、其他操作配置FreeRTOS的SysTick 1、找到头文件 FreeRTOSConfig.h 有如下定义。 #define configCPU_CLOCK_HZ ((unsigned long)168000000) //CPU频率 #define configTICK_RATE_HZ (( portTickType )1000) //时钟节拍频率这里设置为1000周期就是1ms2、搜索 configTICK_RATE_HZ在port.c中。 portNVIC_SYSTICK_LOAD_REG ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;portNVIC_SYSTICK_CTRL_REG ( portNVIC_SYSTICK_CLK_BIT | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT );3、搜索 portNVIC_SYSTICK_CTRL_REG在port.c中。 #define portNVIC_SYSTICK_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000e010 ) ) #define portNVIC_SYSTICK_LOAD_REG ( * ( ( volatile uint32_t * ) 0xe000e014 ) )4、下面证明地址是不是SYSTICK的配置地址。 STM32库函数中core_cm4.h中配置systick函数为 uint32_t SysTick_Config(uint32_t ticks) SysTick-LOAD (uint32_t)(ticks - 1UL); /* set reload register */NVIC_SetPriority (SysTick_IRQn, (1UL __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */SysTick-VAL 0UL; /* Load the SysTick Counter Value */SysTick-CTRL SysTick_CTRL_CLKSOURCE_Msk |SysTick_CTRL_TICKINT_Msk |SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */return (0UL); /* Function successful 5、跳转到 SysTick 定义处。 #define SCS_BASE (0xE000E000UL) /*! System Control Space Base Address */ #define ITM_BASE (0xE0000000UL) /*! ITM Base Address */ #define DWT_BASE (0xE0001000UL) /*! DWT Base Address */ #define TPI_BASE (0xE0040000UL) /*! TPI Base Address */ #define CoreDebug_BASE (0xE000EDF0UL) /*! Core Debug Base Address */ #define SysTick_BASE (SCS_BASE 0x0010UL) /*! SysTick Base Address */ #define NVIC_BASE (SCS_BASE 0x0100UL) /*! NVIC Base Address */ #define SCB_BASE (SCS_BASE 0x0D00UL) /*! System Control Block Base Address */#define SCnSCB ((SCnSCB_Type *) SCS_BASE ) /*! System control Register not in SCB */ #define SCB ((SCB_Type *) SCB_BASE ) /*! SCB configuration struct */ #define SysTick ((SysTick_Type *) SysTick_BASE ) /*! SysTick configuration struct */FreeRTOS学习笔记——SysTick中断-CSDN博客 STM32使用FreeRTOS时SysTick哪里配置的_systic在哪配的-CSDN博客 FreeRTOS 之六 任务调度原理解析Systick、PendSV、SVC_freertos svc-CSDN博客 【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍_freertos systick-CSDN博客
http://www.hkea.cn/news/14354603/

相关文章:

  • 小程序软件制作网站个体营业执照可以做网站嘛
  • 茶山镇仿做网站网站开发的流程是怎样的
  • 网站建立好了自己怎么做优化用seo对网站做分析
  • 网站建设与网页制作技术wordpress theme demo
  • 哈尔滨网站建设设计宁波企业建站
  • 图片网站建设广东网站建设哪家专业
  • 黄村网站建设国家企业信用公示网全国上海
  • 做公司网站的模板如何修改网页上的内容
  • 企业网站 自助建站网站多页面布局
  • 基于php技术的个人网站设计深圳市交易服务中心
  • wordpress 网站域名广东工程建设监理协会网站
  • 做类似起点的网站wordpress站点演示
  • 中国空间站扩建POS机网站怎么做
  • 跟我学seoseo排名优化收费
  • 做网站是不是要域名费足球比赛直播平台
  • 济南网站开发哪家好浦东新区手机网站设计
  • 福建网站建设开发深圳做网站哪家公司好
  • 做本地网站赚钱吗?域名注册服务商网站
  • 动态素材网站网站域名怎么查询
  • 济南网站建设服务公司北京搜索关键词优化
  • 苏州网站建设制作网页设计实训内容及过程
  • 查询网站开发语言排网站搭建论文
  • 广西建设执业资格注册中心网站网站构成
  • 域名到网站上线WordPress这新手
  • 网站制作软件是什么电商网页设计理念
  • 网站备案个人信息科技有限公司属于什么行业
  • 慈溪企业网站建设刚做的网站怎么在百度搜到
  • 域名推广技巧安徽网站关键词优化
  • 做网站v赚钱wordpress简约企业主题
  • 西安网站建设推广专家ngrok 群晖wordpress