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

基于MCAL的S32K312 delay功能实现

参考:https://www.wpgdadatong.com/blog/detail/76897

0、简介

本文基于S32K312 介绍使用PIT实现delay功能,主要是记录开发流程,本文基于《基于MCAL的S32K312 GPT使用》的工程,环境如下:

MCU:NXP S32k312

RTD版本:SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311

EB版本:tresos Studio 29.0

***本文目前主要是记录配置,后期不断完善配置内容的含义***

1、工程配置

***本文只记录使用GPT0_CH1完成delay,相关模块的配置请先参考《基于MCAL的S32K312 GPT使用》***

1.1 GPT配置

1.1.1 使能定时器通道和中断

在这里插入图片描述

1.1.2 配置GptPIT

在这里插入图片描述

在这里插入图片描述

1.1.3 GptChannelConfiguration配置

在这里插入图片描述
补充:使能GptNotification并填入PIT0_CH1_Notification

2、代码

//將預裝載值寫入 LDVAL,TCTRL的 TEN 置位開啟定時器,此時定時器開始遞減計數,循環檢測 TFLG 寄存器,當超時中斷髮生時 TIF 置位,關閉 PIT 定時器通道並清除掛起的中斷,完成一次延時操作。

#include "S32K312_PIT.h"
void delay_ms(uint32 i)
{uint32_t count_timer = 0;count_timer = i * ( 30000000 / 1000);IP_PIT_0->TIMER[1].LDVAL = count_timer-1;IP_PIT_0->TIMER[1].TCTRL|=PIT_TCTRL_TEN_MASK;while(!(IP_PIT_0->TIMER[1].TFLG));IP_PIT_0->TIMER[1].TCTRL&=~PIT_TCTRL_TEN_MASK;IP_PIT_0->TIMER[1].TFLG|=PIT_TFLG_TIF_MASK;
}
void PIT0_CH1_Notification(uint8_t channel)
{(void)channel;
}
//	test
//	while(1){
//		delay_ms(35);
//		TIME_TEST_IO_HIGH;
//		delay_ms(20);
//		TIME_TEST_IO_LOW;
//	}

3、实验结果

在这里插入图片描述

相关文章:

  • Chatbox上使用本地和在线DeepSeek以及硅基流动DeepSeekI的对比感受
  • 如何利用GM DC Monitor快速监控一台网络类设备
  • OOP丨《Java编程思想》阅读笔记Chapter 5 : 初始化与清理
  • python爬虫降低IP封禁,python爬虫除了使用代理IP和降低请求频率,还有哪些方法可以应对IP封禁?
  • Cursor入门教程-JetBrains过度向
  • ReportLab 导出 PDF(页面布局)
  • 【Windows】安装或者点击OneDrive没有任何反应的解决方案
  • C++零基础实践教程 函数 数组、字符串与 Vector
  • 【文献笔记】SatLM: Satisfiability-Aided Language Models Using Declarative Prompting
  • STM32-FreeRTOS的详细配置
  • STM32基础教程——DMA
  • 深入解析Java日志框架Logback:从原理到最佳实践
  • 医院 VMware 替代实践合集|以国产虚拟化和超融合替代 vSphere 和 vSAN
  • 随机IP的重要性:解锁网络世界的无限可能
  • 数据库脱裤
  • Spring Boot管理Spring MVC
  • 【CRF系列】第7篇:CRF实战——经典工具与Python库应用
  • SPA 收入支出/技师提成自动统计系统——仙盟共创平台——未来之窗
  • 21源码剖析——初始化——加载核心配置文件
  • 基于YOLOv9的课堂行为检测系统
  • 简单的购物网站模板/html网页制作步骤
  • 私人做网站有什么用/沧州网站seo
  • 江苏优化网站/重庆百度推广电话
  • 怎么通过微博做网站外链/谷歌推广效果怎么样
  • 东莞市建设质量监督网站/东莞seo排名优化
  • 移动互联网技术网站/外贸推广具体是做什么