我自己的理解;写的不一定对,还请多指教;

从网上看到的好多都是复制粘贴的一个版本,感觉不太对

图上的是系统时钟(SYSCLKOUT)=75MHz;

ConfigCpuTimer(&CpuTimer0, 150, 500000);

这样不太现实,系统时钟跑75M次是1s,你cpu定时器跑150M才是1s,怎么可能?TPR里的TDDRH:TDDR没法设置啊,不可能让他们等于1/2吧!所以我觉得这说的不对;

下图是我们在程序中经常见到的对cpu定时器的设置;

从注释中可以知道,CPU定时器的时钟频率是150Mhz时(区别于系统时钟SYSCLKOUT),(500000是定时器一个周期的时间,应该就是设定的时间T)每50ms会发生一次中断;怎么实现的呢?

CPUFreqInMHz这个是cpu定时器的频率,由ConfigCpuTimer()的Freq可知为150,单位为Mhz;(区别于系统时钟SYSCLKOUT),

CPU的定时器时钟周期即:TIMCLK=(TDDRH:TDDR+1)x(1/SYSCLKOUT),他的倒数就是cpu定时器的频率,已知函数中自定义的Freq就是频率,那么就可以求得(TDDRH:TDDR)的值了;Freq是等于系统时钟频率的所以TDDR是1;在这里

这样设置TPR(即PSC+TDDR)就表示定时器的时钟等于系统时钟;

为什么将(Freq*Period)赋给PRD?PRD是定时器周期寄存器,意思应该就是定时器从开始到发出中断的时间,让它走(Freq*Period)个定时器周期,停止然后中断;

ConfigCpuTimer(&CpuTimer0, 150, 500000);由此函数知

T(想要的定时时间/定时器周期)=TIMCLK*(PRDH:PRD)==>(PRDH:PRD)=T/TIMCLK=T*Freq;

(比如说系统时钟150MHz,即一个周期是6.67ns;由PRD知运行的系统周期是500000x150=75000000个;75000000x6.666667=500000250ns,大约就是0.5s);

ConfigCpuTimer(&CpuTimer0, 75, 500000);

即:cpu定时器的频率是75MHz,即每两个系统时钟周期代表一个CPU定时器周期;那么时间就变位2x6.666667ns(1/75);

我需要的一个定时器周期是500000us,一个周期是(1/75M)s,那么我就需要500000x75个这样的周期,所以PRDH:PRD就被设置为75*500000=37.5M;

(PRDH:PRD)*2x6.666667ns=0.5s;

dsp 28335 ConfigCpuTimer()详细介绍的更多相关文章

  1. QT中PRO文件写法的详细介绍

    学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理. Qt程序一般使用Qt提供的qmake工具来编译. qmake ...

  2. [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍

    绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...

  3. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  4. _MSC_VER详细介绍

    _MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...

  5. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

  6. RabbitMQ消息队列(一): Detailed Introduction 详细介绍

     http://blog.csdn.net/anzhsoft/article/details/19563091 RabbitMQ消息队列(一): Detailed Introduction 详细介绍 ...

  7. doT.js详细介绍

    doT.js详细介绍   doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...

  8. Linux截屏工具scrot用法详细介绍

    Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

  9. Oracle Merge into 详细介绍

    Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...

随机推荐

  1. visual studio code——运行python

    How to run Python in Visual Studio Code Getting Started with Python in VS Code python教程 vs code 安装py ...

  2. MySQL及navicat for mysql中文乱码

    转载自:https://www.cnblogs.com/mufire/p/6697994.html 修改完之后记着重启mysql服务,在服务里边重启,即可生效! 全部使用utf8编码 MySQL中文乱 ...

  3. 小程序之 swiper高度根据图片高度变化

    今天做的是这个效果⬇️  swiper的高度根据图片的高度而改变 wxml:<swiper indicator-dots="{{indicatorDots}}" vertic ...

  4. TCGA样本命名详解

    在TCGA中,一个患者可能会对应多个样本,如TCGA-A6-6650可以得到3个样本数据: TCGA-A6-6650-01A-11R-1774-07TCGA-A6-6650-01A-11R-A278- ...

  5. canvas 水波纹

    <!DOCTYPE html> <html> <head> <title>水波背景</title> <meta charset=&qu ...

  6. vue dialog在ios层级有问题

    :modal-append-to-body="false" 遮罩层是否插入至 body 元素上,若为 false,则遮罩层会插入至 Dialog 的父元素上

  7. MySQL中Decimal类型和Float Double的区别 & BigDecimal与Double使用场景

    MySQL中存在float,double等非标准数据类型,也有decimal这种标准数据类型. 其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形 ...

  8. 【原】HDMI输出接口传输速率计算

    1.1080P60为例: 三组差分线 R.G.B,每组速率: R:1920x1080(像素)x10(有效位为8bit,按10bit传输)x60(帧率)= 1244160000 ~~1.25G bit/ ...

  9. NetSec2019 20165327 EXP5 MSF基础应用

    NetSec2019 20165327 EXP5 MSF基础应用 实践目标 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.1一个主动攻击实践,如 ...

  10. java第一次,第二次实训

    本次作业通过自己的练习和理解还是可以写出来的,最后两个题目我暂时没有写 编写程序: 声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果. 编写程序:从键盘输入圆的半径,计 ...