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

重庆网网站建设公司学校做安全台账是哪个网站

重庆网网站建设公司,学校做安全台账是哪个网站,html网站的规划与建设,网站怎么做百度百科文章目录 1 通用定时器1.1 定时器框图1.2 实现周期性中断 2 相关寄存器3 定时器配置3.1 时钟使能3.2 初始化GPT1定时器3.2.1 base3.2.2 initConfig3.2.2.1 clockSorce3.2.2.2 divider3.2.2.3 enablexxxxx 3.3 设置 GPT1 比较值3.3.1 base3.3.2 channel3.3.3 value 3.4 设置 GPT… 文章目录 1 通用定时器1.1 定时器框图1.2 实现周期性中断 2 相关寄存器3 定时器配置3.1 时钟使能3.2 初始化GPT1定时器3.2.1 base3.2.2 initConfig3.2.2.1 clockSorce3.2.2.2 divider3.2.2.3 enablexxxxx 3.3 设置 GPT1 比较值3.3.1 base3.3.2 channel3.3.3 value 3.4 设置 GPT1 输出比较 1 的 中断3.5 使能 GPT3.6 设置 GPT1 中断 优先级3.7 编写中断服务函数3.7.1 GPT_GetStatusFlags3.7.2 GPT_ClearStatusFlags 3.8 最终代码 1 通用定时器 RT1052 内部包含 2 个通用定时器GPT1 和 GPT2以下简称 GPT 1.1 定时器框图 一个 32 位定时器拥有 2 个输入捕获通道、3 个输出比较通道以及相应的中断。 132 位计数器CNT仅支持递增计数方式。 212 位可编程预分频器(PR)计数器时钟频率的分频系数为 14096 之间的任意数值。 32 个输入捕获通道支持上升沿、下降沿和任意边沿捕获。 43 个输出比较通道支持取反、设置、清零和生成单脉冲1 个输入时钟模式。 5支持捕获、比较和溢出中断。 6支持低功耗模式下继续运行。 6支持重启Restart模式和自由运行Free Run模式 重启模式当计数器值与比较值匹配时计数器自动清零重新开始计数。自由运行模式计数器值总是从 0 开始计数一直到 0XFFFFFFFF 溢出发生匹配事件不会导致定时器清零。 1.2 实现周期性中断 使用重启模式利用比较值1 来设置溢出时间 2 相关寄存器 3 定时器配置 GPT 相关的库函数在 fsl_gpt.c 和 fsl_gpt.h 这两个文件中 3.1 时钟使能 GPT 初始化函数 GPT_Init 默认会使能GPT 使能。函数里面通过 CLOCK_EnableClock 来使能了 GPT1 时钟。 3.2 初始化GPT1定时器 void GPT_Init(GPT_Type *base, const gpt_config_t *initConfig)gpt_config_t gpt1_onfig; GPT_GetDefaultConfig(gpt1_onfig); //先初始化 GPT1 为默认值 gpt1_onfig.clockSourcekGPT_ClockSource_Periph; //初始化时钟源 perclk_clk_root gpt1_onfig.dividerpsc; //设置分频值 GPT_Init(GPT1,gpt1_onfig); //初始化 GPT1 3.2.1 base GPT1 3.2.2 initConfig typedef struct _gpt_init_config {gpt_clock_source_t clockSource; //选择时钟源uint32_t divider; //时钟源分频bool enableFreeRun;bool enableRunInWait;bool enableRunInStop;bool enableRunInDoze;bool enableRunInDbg;bool enableMode; } gpt_config_t;3.2.2.1 clockSorce clockSource 用来设置用于 GPT 的时钟源 typedef enum _gpt_clock_source {kGPT_ClockSource_Off 0U, //关闭时钟kGPT_ClockSource_Periph 1U, //外设时钟(ipg_clk)kGPT_ClockSource_HighFreq 2U, //高速参考时钟(ipg_clk_highfreq)kGPT_ClockSource_Ext 3U, //外部参考时钟kGPT_ClockSource_LowFreq 4U, //低速参考时钟(ipg_clk_32k)kGPT_ClockSource_Osc 5U, //24M 晶振 } gpt_clock_source_t;实 际 上 设 置 的 是 CR 寄 存 器 的 CLKSRC 位 一 般 选 择 外 设 时 钟 kGPT_ClockSource_Periph (ipg_clk)作为 GPT 的时钟源 外设时钟配置一般为75Mhz。 3.2.2.2 divider divider 设置时钟源分频可以设置的值范围为 0~4095分别对应 1~4096 分频。 实际设置的是 PR 寄存器的 PRESCALER 位比如我们将分频值设置为 2那么 GPT1 最终的时钟就是:75MHz/(21)25MHz。 3.2.2.3 enablexxxxx 使能 GPT 的相应模式 3.3 设置 GPT1 比较值 设置好比较值就可以决定确定GPT1的溢出时间了也就是定时时间。 GPT1 比较值的设定通过函数 GPT_SetOutputCompareValue 来完成 static inline void GPT_SetOutputCompareValue(GPT_Type *base,gpt_output_compare_channel_t channel,uint32_t value)3.3.1 base GPT1 3.3.2 channel typedef enum _gpt_output_compare_channel {kGPT_OutputCompare_Channel1 0U, //输出比较通道 1kGPT_OutputCompare_Channel2 1U, //输出比较通道 2kGPT_OutputCompare_Channel3 2U, //输出比较通道 3 } gpt_output_compare_channel_t;3.3.3 value 第三个参数就是要设置的比较值。 比如我们设置 GPT1 分频值为 3749那么GPT1 的时钟就是 75MHz/(37491)20000Hz比较值设置为 10000 的话那么每 0.5s 就会产生一次比较中断这样就实现了 0.5s 的定时。 3.4 设置 GPT1 输出比较 1 的 中断 输出比较中断设置通过函数 GPT_EnableInterrupts 来完成 GPT_EnableInterrupts(GPT_Type *base, uint32_t mask);GPT_EnableInterrupts(GPT1, kGPT_OutputCompare1InterruptEnable);使用 GPT1 的输出比较通道 1所以设置为 kGPT_OutputCompare1InterruptEnable。 3.5 使能 GPT 调用函数 GPT_StartTimer 来使能 GPT 定时器 void GPT_StartTimer(GPT_Type *base)设置 CR 寄存器的 EN 位 3.6 设置 GPT1 中断 优先级 因为要产生中断必不可少的要设置 NVIC 相关寄存器 RT1052_NVIC_SetPriority(GPT1_IRQn,5,0); //抢占优先级 5子优先级 0 EnableIRQ(GPT1_IRQn); //使能 GPT1 中断3.7 编写中断服务函数 中断产生后需要通过函数 GPT_GetStatusFlags 判断是否为比较中断。在处理完中断之后调用函数 GPT_ClearStatusFlags 来清除该中断标志。 3.7.1 GPT_GetStatusFlags static inline uint32_t GPT_GetStatusFlags(GPT_Type *base, gpt_status_flag_t flags)GPT1flags typedef enum _gpt_status_flag {kGPT_OutputCompare1Flag GPT_SR_OF1_MASK, //输出比较通道 1 中断标志kGPT_OutputCompare2Flag GPT_SR_OF2_MASK, //输出比较通道 2 中断标志kGPT_OutputCompare3Flag GPT_SR_OF3_MASK, //输出比较通道 3 中断标志kGPT_InputCapture1Flag GPT_SR_IF1_MASK, //输入捕获通道 1 中断标志kGPT_InputCapture2Flag GPT_SR_IF2_MASK, //输入捕获通道 2 中断标志kGPT_RollOverFlag GPT_SR_ROV_MASK, //溢出中断标志 } gpt_status_flag_t;3.7.2 GPT_ClearStatusFlags 中断状态(标志位)清除函数 GPT_ClearStatusFlags 原型如下 static inline void GPT_ClearStatusFlags(GPT_Type *base, gpt_status_flag_t flags)GPT1kGPT_OutputCompare1Flag。 3.8 最终代码 gpt_config_t gpt1_onfig;//初始化GPTIMER1时钟源为perclk_clk_root75MHz //pre:分频值0~4096 //comcount:比较计数值0~0xFFFFFFFF //当ocrxCNT时,产生中断. //定时时间ocrx*(psc1)/PERCLK_CLK_ROOT void GPT1_Int_Init(u16 psc,u32 ocrx) {GPT_GetDefaultConfig(gpt1_onfig); //先初始化GPT1为默认值gpt1_onfig.clockSourcekGPT_ClockSource_Periph; //初始化时钟源perclk_clk_rootgpt1_onfig.dividerpsc; //设置分频值GPT_Init(GPT1,gpt1_onfig);GPT_SetOutputCompareValue(GPT1,kGPT_OutputCompare_Channel1,ocrx); //设置比较计数值GPT_EnableInterrupts(GPT1,kGPT_OutputCompare1InterruptEnable); //使能GPT比较通道1中断RT1052_NVIC_SetPriority(GPT1_IRQn,5,0); //抢占优先级5子优先级0EnableIRQ(GPT1_IRQn); //使能GPT1中断GPT_StartTimer(GPT1); //开始定时器 }//GPT1中断服务函数 void GPT1_IRQHandler(void) {//OCR1中断if(GPT_GetStatusFlags(GPT1,kGPT_OutputCompare1Flag)){LED1_Toggle; //LED1灯翻转GPT_ClearStatusFlags(GPT1,kGPT_OutputCompare1Flag);//清除中断标志位}__DSB(); //数据同步屏蔽指令 }
http://www.w-s-a.com/news/239061/

相关文章:

  • 网站模板免费下载中文版大连网站建设哪家专业
  • 网站建设的基本代理公司注册公司坑人
  • 企业网站被黑后如何处理wordpress邮件发送类
  • 北京网站的网站建设公司建设工程竣工验收消防备案网站
  • 淄博市 网站建设报价wordpress里的发消息给我
  • 网站下拉菜单怎么做游戏网站模板免费下载
  • 阿里云上做网站套模板怎么做一个网站开发小组
  • 营销型网站源码下载青岛做网站建设的公司哪家好
  • 迁西网站定制怎么制作网址内容
  • 深圳装饰公司网站宁波网站建设哪里有
  • 建站网站破解版怎么看自己的网站是用什么做的
  • 做微商那个网站好织梦模板更新网站
  • 网站注册表单怎么做手机做网站需要多少天
  • 书店商城网站html模板下载企业网站建设方案书范文
  • 建设网站是普通办公吗快速排名seo软件
  • 大型外贸网站建设网站建设图片尺寸要求
  • 网站建设可信赖北京网站开发月薪
  • 专门做lolh的网站wordpress 模版 cho's
  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回