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

湖南网站设计外包哪家好营销型网站服务

湖南网站设计外包哪家好,营销型网站服务,网站开发ide php,广西南宁市住房和城乡建设局网站概念 GPT,全称General Purpose Timer,就是个通用定时器,取的名字奇怪了点。定时器是一定要的,要么提供给BSW去使用,要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…

概念

GPT,全称General Purpose Timer,就是个通用定时器,取的名字奇怪了点。定时器是一定要的,要么提供给BSW去使用,要么提供给OS去使用。

配置

General

GptDeinitApi控制接口Gpt_DeInit是否启用

GptEnableDisableNotificationApi控制接口Gpt_EnableNotification和Gpt_DisableNotification是否启用。

GptTimeElapsedApi控制接口Gpt_GetTimeElapsed是否启用

GptTimeRemainingApi控制接口Gpt_GetTimeRemaining是否启用

GptTimeElapsedApi控制接口Gpt_GetTimeElapsed是否启用

GptTimeRemainingApi控制接口Gpt_GetTimeRemaining是否启用

GptVersionInfoApi控制接口Gpt_GetVersionInfo是否启用

GptWakeupFunctionalityApi控制唤醒相关功能接口接口Gpt_SetMode, Gpt_EnableWakeup,Gpt_DisableWakeup和Gpt_Cbk_CheckWakeup()是否启用。

这里介绍一下定时器唤醒机制:如果硬件支持并启用,内部硬件计时器可以作为唤醒源,如果一个通道作为唤醒源,就不能用来做其他的用途。

GptDevErrorDetect开发者错误检测是PORT_DEV_ERROR_DETECT宏定义的开关,新人可以勾选,它能帮你检查出一些开发阶段的错误。老手一般不打开,因为会影响到代码的执行效率。

GptReportWakeupSource控制唤醒源报告是否启用

GptEnableDualClockMode在模式转换时启用预分频器设置,一般用不上。

GptEnablePit64启用pit 64位功能,PIT就是Periodic Interrupt Timer周期中断定时器,PIT64就是一个大点的PIT计时器,能容纳更大的tick数据,因为芯片只有32位,所以分开高32位和低32位传回来。

 

GptClockReferencePoint

这里就是在GPT模块里面创建个时钟引用,本身不创建任何东西,只是把MCU模块里面配置的时钟引用过来,作为一个基准时钟,给到GptChannelConfigSet里面的定时器去用。

GptChannelConfigSet

GptChannelConfiguration里面的才是主要的配置,每个容器就是一个通用定时器。

 

GptChannelId自己排序的号

GptHwChannel物理通用定时器通道,可以选STM(System Timer Module系统时钟模块)/GTM(Generic Timer Module通用定时器模块)/PIT(Periodic Interrupt Timer周期中断定时器)之类的。

 

  • STM(系统时钟模块):适用于系统级任务,如系统心跳或任务调度,通常与系统时钟直接相关。
  • GTM(通用定时器模块):适合需要多种功能的场景,如PWM生成、输入捕捉和比较输出,灵活性高。
  • PIT(周期中断定时器):专为生成周期性中断设计,适合需要定期执行任务的情况。

GptChannelMode定时器超时之后的行为,也就是连续计时还是一次性计时。

GptChannelTickFrequency指定定时器的频率,单位为Hz。最大不能大于下面引用的GptClockReferencePoint引用的MCU时钟,下面称为“引用的MCU时钟”。

对于STM,引用的MCU时钟除以定时器频率小于等于256。

对于RTC,引用的MCU时钟除以定时器频率只能是32或512或16384。

其他通道改这个配置值是不起作用的。

GptFreezeEnable勾选之后不能在代码运行的时候修改硬件通道。

GptEnableWakeup使能通道唤醒功能

GptNotification通用定时器的回调函数,这个函数要自己实现,动态代码只会生成个定义,不会实现出来。

GptChannelClkSrcRef选择GptClockReferencePoint里面的引用,这个引用后面会再引用到MCU的时钟源。具体GPT的时钟基础就是引用的MCU频率,在Gpt_StartTimer接口里面设置超时时间,到达超时时间就会调用回调函数。

GptWakeupSourceRef唤醒源,从ECU状态管理器里面获取。

GptDisableEcumWakeupSourceNotification通过调用EcuM_CheckWakeup接口启用/禁用EcuM通知

静态代码

Gpt_CheckWakeup检查支持唤醒的GPT通道是否是唤醒事件的源,并调用ECU状态管理器服务EcuM_SetWakeupEvent,用于有效的GPT通道唤醒事件。在调用Gpt_Cbk_CheckWakeup之前,需要初始化驱动程序。

Gpt_DeInit逆初始化接口,根据硬件通道是STM/PIT/GTM/PIT1类型来操作对应的寄存器。譬如硬件通道是STM类型的,就操作STM_CR寄存器失能定时器、分频数设置为0,操作STM_CCR寄存器失能STM通道里面跟定时器相关的配置,操作STM_CMP寄存器将比较器里面的值清零,操作STM_CIR寄存器清除中断标志位。最后,无论是什么类型的硬件通道,都会把通道状态进行重置,模式设置为普通,回调函数指针清空。

Gpt_DisableWakeup禁用单个GPT通道的唤醒中断调用。实际上就是调用Gpt_LLD_DisableWakeup接口,根据硬件通道类型去失能对应通道的中断,入参是物理通道ID,需要在动态代码里面复制。

Gpt_EnableNotification开启单个GPT通道的唤醒中断调用,操作Gpt_DisableWakeup相反。

Gpt_GetTimeElapsed获取从开始计时或重新开始计时到现在的tick,实际上是调用Gpt_LLD_GetTimeElapsed接口获取当前tick返回。

Gpt_GetTimeRemaining获取现在到超时之间的tick,实际上是调用Gpt_LLD_GetTimeRemaining接口获取当前tick和超时tick进行相减后返回。

Gpt_GetVersionInfo获取版本信息,需要传入一个Std_VersionInfoType类型的结构体指针,接口会把版本信息赋值到传入的结构体里面。

Gpt_Init初始化的时候需要调用,入参是Gpt_ConfigType类型的结构体指针,接口会把入参的结构体或者Gpt_InitConfigPC结构体里面的内容赋值给全局结构体Gpt_Cfg_Ptr,这个结构体会在Gpt_LLD_SetSleepMode等GPT相关的操作函数里面使用到。

Gpt_SetMode设置GPT的模式,只有GPT_MODE_NORMAL和GPT_MODE_SLEEP可以选。如果是GPT_MODE_NORMAL,调用Gpt_LLD_SetNormalMode接口,有回调函数就使能回调函数,使能定时器。如果是GPT_MODE_SLEEP,调用Gpt_LLD_SetSleepMode,停止定时器并失能,有回调函数失能回调函数。并且在执行过程中调用Gpt_Schm_ProtectResource和Gpt_Schm_UnprotectResource保护GPT的执行。

Gpt_StartTimer启动定时器,入参为GPT通道和超时值,单位为tick。先调用Gpt_LLD_CheckStartTimeoutValue检查超时值是否合理,再调用Gpt_LLD_StartTimer开始计时。并且在执行过程中调用Gpt_Schm_ProtectResource和Gpt_Schm_UnprotectResource保护GPT的执行。

Gpt_StopTimer停止定时器,调用Gpt_LLD_StopTimer暂停计时。并且在执行过程中调用Gpt_Schm_ProtectResource和Gpt_Schm_UnprotectResource保护GPT的执行。

Gpt_DisableNotification失能定时器函数回调机制。

Gpt_DisableNotification_Pit64失能Pit64的回调机制,其实就是清除PIT1_TCTRL寄存器。并且在执行过程中调用Gpt_Schm_ProtectResource和Gpt_Schm_UnprotectResource保护GPT的执行。

介绍到这里,需要注意一件事情,就是启动定时器之前,如果有回调函数,就要先使能回调机制。暂停定时器的时候,如果有回调函数,就要失能回调机制,放在暂停定时器的前还是后都可以。

Gpt_EnableNotification_Pit64使能Pit64的回调机制

Gpt_EnableWakeup_Pit64使能PIT64的唤醒功能

Gpt_GetTimeElapsed_Pit64获取PIT64从开始计时或重新开始计时到现在的tick

Gpt_GetTimeRemaining_Pit64获取PIT64计时器离超时还有多久的tick

Gpt_StartTimer_Pit64启动PIT64计时器

Gpt_StopTimer_Pit64暂停PIT64计时器

动态代码

GPT_GTM_TOMx_CH_y_ISR_USED,其中x和y都是可变的数字,当你选择的GPT通道为GTM的,就会出现这类定义,这类定义会将动态代码里面的ISR(Gpt_TOM_x_CHy_CHz_ISR);接口编译进来,其中xyz都是可变数字。其实就是开启一个TOM的中断,并且把该接口实现,该接口本质上就是调用Gpt_Gtm_LLD_ProcessInterrupt接口执行产生中断时候的动作,譬如重载、调用回调函数之类的。

其他的GTM和STM、PIT也类似。

Gpt_InitChannelPC_1数组里面有每一个GPT的初始配置信息,用来给Gpt_Init初始化的。

 

 

 


文章转载自:

http://oS8BoTV0.bttph.cn
http://gz2beVvL.bttph.cn
http://8WrbmDIC.bttph.cn
http://xH5BqxRS.bttph.cn
http://NTxea5Ud.bttph.cn
http://8NeeHh4L.bttph.cn
http://6CfnIfI2.bttph.cn
http://itrTitGp.bttph.cn
http://U3XChlCd.bttph.cn
http://KaRZvMLM.bttph.cn
http://HHfQkL66.bttph.cn
http://jS1jN4cI.bttph.cn
http://uYiFivg9.bttph.cn
http://W37xPSEM.bttph.cn
http://0QLn2Xwy.bttph.cn
http://AlTdiksc.bttph.cn
http://vhqsDgm9.bttph.cn
http://OGYc5GnP.bttph.cn
http://71HoPbYe.bttph.cn
http://Us5FrbSo.bttph.cn
http://hVZVDWdx.bttph.cn
http://dKLOqg7f.bttph.cn
http://S12O54F8.bttph.cn
http://u90C4yyB.bttph.cn
http://mlS3VbQj.bttph.cn
http://jFDQOP8d.bttph.cn
http://kuLWYATT.bttph.cn
http://V5AglQYX.bttph.cn
http://zZ7Y8Lci.bttph.cn
http://8mqLe08U.bttph.cn
http://www.dtcms.com/wzjs/730123.html

相关文章:

  • 网站表格怎么做石家庄网站建设智美
  • 专业做网站推广的公司杭州网站设计制作
  • 接go语言网站开发电子产品网页设计模板
  • 中国最大的门户网站是wordpress多站模式
  • app设计方案计划书长春网站优化服务
  • 口碑好的网站设计制作价格淘宝客网站建设任务
  • 图书馆门户网站建设有哪些公司品牌建设的思路
  • 怎么做网站调查表设计业务网站
  • 网站开发与app开发wordpress手机 主题
  • 四川建设机械网站wordpress入门书籍
  • wordpress废弃函数网站seo优化服务商
  • 网站示例开发网站的基本过程
  • 南京越城建设集团网站u8无可用数据源
  • 国外设计网站欣赏物联网小项目
  • 昌江县住房和城乡建设局网站php mysql网站开发项目
  • 网站部分频道完全不收录了怎么做织梦网站教程
  • 网站建设免费代理附近学电脑在哪里报名
  • 鞍山网站建设找金航青岛建站费用
  • 建网站服务器系统百度免费网站建设
  • 昆明网站建站推广搜索引擎网站建设代码
  • 网站标签图标代码wordpress is
  • 个人网站可以做产品众筹吗店铺推广软文范例
  • 湖南移动官网网站建设东莞公共资源交易中心官网
  • 网站开发制作公自己的网站怎么和百度做友链
  • 简约淘宝网站模板免费下载手机网站架构
  • 静安网站建设关键词优化seo怎么自己做投票网站
  • 石家庄seo网站管理电商网站订货
  • 企业网站优化服务主要围绕哪些要素风格 特别的网站
  • 电子商务网站的建设方法上海公司法人落户条件
  • 网站设计建设专业服务德州宁津建设局网站