之前工程中用的延时函数都是2个for嵌套,不是很准确,既然学习HET和RTI可以做一个精
确的延时函数,找到一篇参考文章:IAR For Arm 的精确定时及延时等_jayacham的专栏-CSDN博客,
文章中写得很清楚了不再赘述。为了便于观察延时时间是否准确,还是用了gioa0的电平来查
看。

HCG配置gioa0为输出,RTI不用设置,时钟默认,其他默认即可。
先看下delay函数:

/*
* rti_delay.c
*
* Created on: 2021年7月4日
* Author:
*/
#include "rti_delay.h"uint32 rtiGetMyTick(uint32 compare)
{uint32 tick;uint32 counter = ((rtiREG1->COMPCTRL & (1U << (compare << 2U))) !=0U ) ? 1U : 0U;/* USER CODE BEGIN (27) */tick = rtiREG1->CNT[counter].FRCx;/* USER CODE END */return tick;
}void rtiDelay_ms(uint32_t msec)
{uint32_t curTick = rtiGetMyTick(rtiCOMPARE0);uint32_t endTick = curTick + msec * 1000 * 10; /* *1000 means 1ms */while( curTick < endTick){curTick = rtiGetMyTick(rtiCOMPARE0);}
}void rtiDelay_us(uint32_t msec)
{uint32_t curTick = rtiGetMyTick(rtiCOMPARE0);uint32_t endTick = curTick + msec * 1 * 10; /* *1 means 1us */while( curTick < endTick){curTick = rtiGetMyTick(rtiCOMPARE0);}
}
/** rti_delay.h**  Created on: 2021年9月27日*      Author: */#ifndef INCLUDE_RTI_DELAY_H_
#define INCLUDE_RTI_DELAY_H_#include "rti.h"uint32 rtiGetMyTick(uint32 compare);
void rtiDelay_ms(uint32_t msec);
void rtiDelay_us(uint32_t msec);#endif /* INCLUDE_RTI_DELAY_H_ */

涉及的几个寄存器看下:

1、RTI Compare Control Register (RTICOMPCTRL),对应rtiREG1->COMPCTRL,用来确定具体哪个寄存器;

2、RTI Free Running Counter 0 Register (RTIFRC0),对应rtiREG1->CNT[counter].FRCx,This registers holds the current value of the free running counter 0。

#include "system.h"
#include "gio.h"
#include "sys_vim.h"
#include "rti.h"
#include "delay.h"
#include "rti_delay.h"int main(void)
{/* USER CODE BEGIN (2) */gioInit();rtiInit();rtiStartCounter(rtiCOUNTER_BLOCK0);while (1){rtiDelay_us(500);gioSetBit(gioPORTA, 0, 0);rtiDelay_ms(10);gioSetBit(gioPORTA, 0, 1);}/* USER CODE END */return 0;
}

波形:

TMS570-5-RTI精准延时相关推荐

  1. STM32外设驱动---SysTick精准延时

    单片机:STM32F103  库函数:V3.5  描述:利用系统内核文件core_cm3.c内部SysTick实现1ms,1us的精准延时,时钟72MHz,涉及中断服务SysTick_Handler的 ...

  2. 【STM32/FreeRTOS】精准延时的实现

    目录 前言 SysTick定时器寄存器 裸机编程下实现 FreeRTOS中实现 前言 在使用通讯协议来驱动外设的时候需要遵循严格的时序逻辑,往往用到微秒(us)级别的延时,在裸机编程中可以使用SysT ...

  3. NXP JN5169使用滴答定时器进行精准延时

    NXP JN5169使用滴答定时器进行精准延时(us.ms) 一.滴答定时器介绍 二.滴答定时器系统图 1.系统图介绍 2.单次触发模式 3.可重启模式 4.连续运行模式 三.系统时钟 1.系统时钟域 ...

  4. MSP430 精准延时之定时器 TIMERA 0.5实现LED闪烁

    在经历过上一章的粗暴for()循环进行延时和简单的delay_ms(),delay_us()精准延时之后,本章介绍另一种精准延时定时器 定时器基本可以分为四种定时器 本章为大家着重介绍定时器timer ...

  5. STM32 精准延时

    延时,就是停在那,啥都不干,发呆.精准延时,就是发呆多长时间,是精确的. 比如,要求某个IO口维持低电平1毫秒后,再维持高电平3毫秒,就需要把IO口拉高,然后延时1毫秒,再拉低,再维持3毫秒. 类似这 ...

  6. MSP430杂谈--delay_cycles的精准延时

    在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题. IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的函数)以提供用户精确延时使用, ...

  7. 51单片机应用定时器实现精准延时函数的封装

    #include <STC89C5xRC.H>typedef unsigned char u8; typedef unsigned int u16; sbit led = P2^0; bi ...

  8. 关于STM32的延时问题

    最近一直在搞一辆智能小车,用STM32单片机驱动,往上面加了很多外设,外型如下: 今天下午打算在LCD显示一个温度,却发现怎么都显示不了,也找不出原因,还好我们公司的郑工帮我看出了问题,让我顺利改过来 ...

  9. zynq网络时钟控制寄存器_ZYNQ笔记(6):普通自定义IP封装实现PL精准定时中断...

    软件的定时中断很难控制精准触发沿的位置,可以通过 PL-PS 的中断完成精准的定时中断.PL 的中断通过 Verilog 代码产生,这样紧密结合 PS-PL 的处理,发挥各自的优势. 一.PL 侧定时 ...

  10. c语言延时函数delay_STM32中精确延时函数的实现

    在与传感器或者模块的总线进行通信的时候,常常需要使用到精确延时,一般我们会封装几个常用延时函数,下面我们以STM32F103芯片为例,详细介绍一下STM32下一种精确延时函数的实现: 时钟树 下图中紫 ...

最新文章

  1. 西部985,进军北京!
  2. 独家|让你的GPU为深度学习做好准备(附代码)
  3. exchange 2010 指定用户邮箱连接CAS服务器
  4. 计算机视觉与深度学习 | TensorMask: A Foundation for Dense Object Segmentation(何凯明团队新作)近5年目标检测综述
  5. 它来了,它来了,最强目标检测算法YOLO v4,它真的来了!!!
  6. [转]内存泄漏简单检测
  7. TCP协议——三次握手与四次关闭
  8. 【HDU - 1254 】推箱子 (双bfs)
  9. php html script,html script标签怎么用
  10. 集训8.21树状数组讲解
  11. TransE算法原理与案例
  12. Adobe Premiere(Pr视频剪辑)下载安装
  13. EXCEL数组公式(3)---数组公式的基础应用,理解数组公式
  14. 编程求一元二次方程的解
  15. 一只小白,在学习delphi.感觉很吃力。。
  16. 碎石生产线在丽江市的生产厂家在哪里
  17. 3D设计软件中怎么画锥齿轮?浩辰3D设计实例
  18. [时间序列分析][1]--平稳性,白噪声的检验
  19. Vue3-浏览器兼容性 IE篇
  20. 良知VS野心,苹果为何要翻新手机?

热门文章

  1. 国家对五险一金的交纳说明
  2. HOI BMVC2018| iCAN: Instance-Centric Attention Network for Human-Object Interaction Detection论文阅读笔记
  3. node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传
  4. 大胜凭德--入行选领导(转载分析)
  5. 通过一个大型项目来学习分布式算法(3)
  6. 当心!你的NAS设备正成为勒索软件攻击的目标
  7. VMware虚拟机安装黑苹果步骤与常见问题,VMware16,MacOS12.01(Moterey)
  8. css3ps插件,CSS3Ps(PS图层转换插件) V1.0 官方版
  9. 你眼里的废品也许就是别人眼里的宝贝(生意)
  10. sam卡和sim卡区别_PSAM卡、SAM卡与SIM卡