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

原画外包网台州网站优化排名

原画外包网,台州网站优化排名,邢台市,外贸找客户有什么网站要查看 DSP F28377 的 CPU 在 50 微秒一次的中断内所有程序运行完总共占用了中断多长时间,可以采用硬件定时器测量和软件计时两种常见方法。 方法一:使用硬件定时器测量 原理 利用 DSP 内部的高精度硬件定时器,在中断开始时记录定时器的值…

要查看 DSP F28377 的 CPU 在 50 微秒一次的中断内所有程序运行完总共占用了中断多长时间,可以采用硬件定时器测量和软件计时两种常见方法。

方法一:使用硬件定时器测量

原理

利用 DSP 内部的高精度硬件定时器,在中断开始时记录定时器的值,在中断结束时再次记录定时器的值,通过两次记录值的差值来计算中断程序的执行时间。

步骤

1.初始化硬件定时器
选择一个合适的硬件定时器(如 CPU 定时器),并对其进行初始化,配置定时器的时钟源、计数模式和计数周期等参数,使其能够精确计时。

#include "F28x_Project.h"void InitCpuTimer(void);void main(void)
{// 初始化系统InitSysCtrl();// 初始化 CPU 定时器InitCpuTimer();// 其他初始化操作// 启用全局中断EINT;ERTM;while(1){// 主循环}
}void InitCpuTimer(void)
{// 初始化 CPU 定时器 0CpuTimer0Regs.TCR.all = 0x00000000;CpuTimer0Regs.PRD.all = 0xFFFFFFFF;CpuTimer0Regs.TPR.all = 0;CpuTimer0Regs.TPRH.all = 0;CpuTimer0Regs.TCR.bit.TSS = 1; // 停止定时器CpuTimer0Regs.TCR.bit.TRB = 1; // 重载定时器
}

2.在中断服务函数中记录时间
在中断服务函数的入口处启动定时器,在中断服务函数的出口处停止定时器,并读取定时器的计数值,计算两次计数值的差值。

__interrupt void myInterrupt(void)
{Uint32 startTime, endTime;// 启动定时器CpuTimer0Regs.TCR.bit.TSS = 0;// 记录开始时间startTime = CpuTimer0Regs.TIM.all;// 中断服务程序代码// ...// 记录结束时间endTime = CpuTimer0Regs.TIM.all;// 停止定时器CpuTimer0Regs.TCR.bit.TSS = 1;// 计算中断执行时间Uint32 executionTime = startTime - endTime;// 处理执行时间,例如打印输出// ...// 清除中断标志PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}

3.换算时间
根据定时器的时钟频率,将计数值的差值换算成实际的时间(微秒)。例如,如果定时器的时钟频率为 100MHz(周期为 10ns),则计数值的差值乘以 10 就是实际的时间(ns),再除以 1000 就可以得到微秒数。

方法二:软件计时

原理

利用一个全局变量在中断开始时记录系统时钟的计数值,在中断结束时再次记录系统时钟的计数值,通过两次计数值的差值来计算中断程序的执行时间。

步骤

1.定义全局变量
在全局作用域定义一个用于记录系统时钟计数值的变量。

#include "F28x_Project.h"volatile Uint32 systemClockCount;void main(void)
{// 初始化系统InitSysCtrl();// 其他初始化操作// 启用全局中断EINT;ERTM;while(1){// 主循环}
}

2.在中断服务函数中记录时间
在中断服务函数的入口处记录系统时钟的计数值,在中断服务函数的出口处再次记录系统时钟的计数值,计算两次计数值的差值。

 

__interrupt void myInterrupt(void)
{Uint32 startTime, endTime;// 记录开始时间startTime = systemClockCount;// 中断服务程序代码// ...// 记录结束时间endTime = systemClockCount;// 计算中断执行时间Uint32 executionTime = endTime - startTime;// 处理执行时间,例如打印输出// ...// 清除中断标志PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}

3.更新系统时钟计数值
在一个定时中断(如 CPU 定时器中断)中更新系统时钟计数值。

 

__interrupt void cpuTimer0ISR(void)
{// 更新系统时钟计数值systemClockCount++;// 清除中断标志CpuTimer0Regs.TCR.bit.TIF = 1;PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}

4.换算时间
根据定时中断的周期,将计数值的差值换算成实际的时间(微秒)。例如,如果定时中断的周期为 1 微秒,则计数值的差值就是实际的时间(微秒)。

通过以上两种方法,可以准确地测量中断内所有程序运行完总共占用的时间。

http://www.dtcms.com/wzjs/781751.html

相关文章:

  • 怎么用代码做网站13572074638网站建设
  • 调查问卷在哪个网站做微信公众号和网站建设
  • 深圳华强北今晚网站优化网络推广seo
  • 移动端h5是什么意思石家庄seo网站优化价格
  • 佛山网站建设开发团队网络营销推广方法
  • 博客网站开发技术全球快速建站工具
  • 不用dw怎么做网站成都最好的设计公司
  • 网站建设的功能定位健身房网站模板
  • 成都网站开发定兰州电商网站建设
  • 用百度云做网站wordpress标签插件下载
  • 建设银行对公打不开网站网站建设好不好
  • 网站源码下载教程网站排版图片
  • 论坛的网站制作找个产品做区域代理
  • 做ic的电子网站有哪些怎么在微信上做网站
  • 北京企业网站推广哪家好智能模板网站建设
  • 山东住房和城乡建设厅网站主页无锡做网站的企业
  • 重庆建设行业信息网站广州模板网站建设
  • 网站内容页做301织梦网站建设实验报告
  • 基于.NET的电子商务网站开发网站开发劳动合同范本
  • 企业网站建设中做网站是要云空间吗
  • 企业管理培训公司排行榜搜索引擎优化培训
  • 网站描述标签优化高端网站设计欣赏
  • 网站首页的快照更新慢男女直接做性视频网站
  • 网站建设可以在里面装东西百度seo竞价推广是什么
  • 山东网站建设公司哪家专业重庆工程建设信息网证件查询
  • 网站源码怎么写无站点推广就是不在网上推广
  • 国外乡村建设网站无锡加盟网站建设
  • 网站做视频的怎么赚钱app设计欣赏网站
  • 东营建站公司在线做英语题的网站
  • 深圳快速网站制作服务甘孜建设机械网站首页