概述

本文分析LPIT驱动,以便更好的使用LPIT。

每个LPIT定时器通道可配置为在4种模式之一下运行:

32-bit Periodic Counter:计数器将加载,然后递减至零。然后,它将设置定时器中断标志并断言输出预触发器。

Dual 16-bit Periodic Counter:计数器将加载,然后较低的16位将递减至零,这将断言输出预触发。然后,高16位将递减至零,这将使输出预触发失效,并设置定时器中断标志。

32-bit Trigger Accumulator:计数器将在第一个触发器上升沿加载,然后在每个上升沿上递减至零。然后,它将设置定时器中断标志并断言输出预触发器。

32-bit Trigger Input Capture:计数器将加载0xFFFF_FFFF,然后递减至零。如果检测到触发器上升沿,它将在TVAL中存储CVAL的倒数,设置定时器中断标志并断言输出预触发器。

在这些模式中,定时器通道操作由触发控制位(TSOT、TSOI、TROT)进一步控制,触发控制位控制定时器通道的加载、重新加载、启动和重启。

上层用户如何使用S32SDK中LPIT

/* Initialize LPIT instance 0*  -   Reset and enable peripheral*/
LPIT_DRV_Init(INST_LPIT1, &lpit1_InitConfig);
/* Initialize LPIT channel 0 and configure it as a periodic counter* which is used to generate an interrupt every second.*/
LPIT_DRV_InitChannel(INST_LPIT1, LPIT_CHANNEL, &lpit1_ChnConfig0);/* Install LPIT_ISR as LPIT interrupt handler */
INT_SYS_InstallHandler(LPIT_Channel_IRQn, &LPIT_ISR, (isr_t *)0);/* Start LPIT0 channel 0 counter */
LPIT_DRV_StartTimerChannels(INST_LPIT1, (1 << LPIT_CHANNEL));/*!* @brief: LPIT interrupt handler.*         When an interrupt occurs clear channel flag and toggle LED0*/
void LPIT_ISR(void)
{/* Clear LPIT channel flag */LPIT_DRV_ClearInterruptFlagTimerChannels(INST_LPIT1, (1 << LPIT_CHANNEL));/* do things */
}

首先通过配置工具产生配置结构体,然后调用LPIT_DRV_Init对模块进行初始化,接着LPIT_DRV_InitChannel进行通道配置,安装中断处理函数,最后启动该通道。

结语

/* Channel 0 configuration structure */
lpit_user_channel_config_t chnlconfig =
{.timerMode = LPIT_PERIODIC_COUNTER,.periodUnits = LPIT_PERIOD_UNITS_MICROSECONDS,.period = 1000000U,.triggerSource = LPIT_TRIGGER_SOURCE_INTERNAL,.triggerSelect = 1U,.enableReloadOnTrigger = false,.enableStopOnInterrupt = false,.enableStartOnTrigger = false,.chainChannel = false,.isInterruptEnabled = true
};

S32SDK相较于其它MCU固件库优秀的一个地方便是将这些配置信息,通过图形化的工具进行配置,并生成结构体代码,然后在初始化中进行调用,并将一些值保存至模块运行信息state中。

了解更多,请访问S32K1专栏 https://blog.csdn.net/kinetis_linux/category_11543275.html。

NXP S32K1 Timer之LPIT模块Driver分析相关推荐

  1. 【使用C++开发MCU】05-CAN实例之NXP S32K1 FlexCAN模块

    文章目录 概述 FlexCAN模块框图 协议引擎Protocol Engine (PE) 控制器主机接口Controller Host Interface (CHI) 总线接口单元Bus Interf ...

  2. NXP S32K1 DMA模块

    目录 概述 DMAMUX 操作模式 功能描述 含周期触发 不含收起触发 Always-enabled DMA sources 寄存器 DMA请求源 DMAMUX操作 eDMA 模块架构 eDMA en ...

  3. NXP S32K1 时钟系统

    概述 本文通过剖析NXP S32K1 时钟分布.SCG.PCC等,加深对MCU时钟系统的了解,避免今后开发在小细节上踩坑. SCG (System Clock Generator) 模块用以产生设备的 ...

  4. 高通平台 input类 sensor驱动分析 : 光感/距感 stk3x1x driver分析

    stk3x1x driver分析 1:注册驱动 定义 i2c_driver static struct i2c_driver stk_ps_driver = {.driver = {.name = D ...

  5. YOLOV4各个创新功能模块技术分析(三)

    YOLOV4各个创新功能模块技术分析(三) 八.数据增强相关-Stylized-ImageNet 论文名称:ImageNet-trained cnns are biased towards textu ...

  6. YOLOV4各个创新功能模块技术分析(二)

    YOLOV4各个创新功能模块技术分析(二) 四.数据增强相关-GridMask Data Augmentation 论文名称:GridMask Data Augmentation 论文地址:https ...

  7. YOLOV4各个创新功能模块技术分析(一)

    YOLOV4各个创新功能模块技术分析(一) 简 介 yolov4论文:YOLOv4: Optimal Speed and Accuracy of Object Detection arxiv:http ...

  8. python logging模块的作用_Python 日志模块logging分析及使用-2

    本文作为Python日志模块的补充,主要介绍日志回滚RotatingFileHandler和TimedRotatingFileHandler的使用,以及其所带来的问题.Logger对象的日志等级是如何 ...

  9. 电气simulink常用模块_16种常用模块电路分析,电气工程师的必备

    电路图一大张,看似复杂,但也都是由一小块一小块的功能模块组成的.因此要根据大的功能先划分成块,再在块里面看是通过什么电路形式实现的,有些起辅助作用,有些起主要作用.下面小编给大家整理了16种常用的模块 ...

  10. Dependency Walker PE模块依赖性分析工具

    ​ 摘要 本文主要讲解利用Dependency Walker为Qt的exe程序添加dll,以使得其可以在客户的机器上运行. ​ Dependency Walker 程序的目录 ​ PE模块依赖性分析 ...

最新文章

  1. BCH综述:稳定发展,市场趋势,新应用
  2. 虚拟化基础架构Windows 2008篇之8-添加启动映像
  3. Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面
  4. sys.getsizeof(), 字节之间的换算关系
  5. 腾讯云COS对象存储图片文件API的详细步骤过程
  6. CHM无法打开解决办法
  7. Mysql更新数据库数据sql_一条更新SQL在MySQL数据库中是如何执行的
  8. opencv 直方图投影
  9. 数据结构 3-2-2 队列的顺序存储实现
  10. Arcgis Engine 添加一个Symbol符号样式步骤
  11. [CH5E02] A Little Shop of Flowers
  12. 融入常识知识的生成式对话摘要
  13. 一文掌握 Docker 技术体系
  14. Bill Gates 2007年哈佛演讲(中/英文)
  15. QOpenGLWight与QPainter混合渲染
  16. flyaway mysql_mysql 常用命令
  17. ai如何置入_ai中更新置入图片链接的具体步骤介绍
  18. Oracle HFM OHS服务无法启动
  19. js简单实现一个json格式化功能
  20. vue中DPlayer视频播放器使用方法

热门文章

  1. 阵列卡直通模式和raid模式_Dell R730服务器通过RAID在线扩容方法详解
  2. 为什么提倡面向接口编程
  3. PDF转Word软件
  4. iptables如何删除一条规则
  5. 理解频域、时域、FFT和加窗 加深对信号的认识
  6. 迪普应用防火墙产品线
  7. linux驱动下载中心,Kvaser Linux驱动程序| Linux驱动程序和SDK开发包
  8. 函数计算机怎么算开根号,excel开根号公式怎么计算(详解excel开根号公式函数)...
  9. 【Windows】安装win10虚拟机
  10. 文电通:助力企业入局“无纸化办公”!