dsp 28035(定时器基础)
1、定时器介绍
1.1 CPU工作原理
TIMER0 |
TINT0 |
PIE |
INT1 |
|
TIMER1 |
TINT1 |
CPU |
INT13 |
|
TIMER2 |
用于DSP/BIOS ,当该功能不使用时,用户可以使用 |
TINT2 |
CPU |
INT14 |
预分频模块
定时器分频寄存器 |
TDDRH:TDDR |
16位 |
预定标计数器 |
PSCH:PSC |
16位 |
定时/计数模块
周期寄存器 |
PRDH:PRD |
32位 |
计数寄存器 |
TIMH:TIM |
32位 |
1.2定时器相关寄存器
地址 |
寄存器 |
名称 |
TIMERxTIM |
Timer x,计数寄存器低 |
|
TIMERxTIMH |
Timer x,计数寄存器高 |
|
TIMERxPRD |
Timer x,周期寄存器低 |
|
TIMERxPRDH |
Timer x,周期寄存器高 |
|
TIMERxTCR |
Timer x,控制寄存器 |
|
保留 |
||
TIMERxTPR |
Timer x,预定标寄存器 |
|
TIMERxPPRH |
Timer x,预定标寄存器高 |
(1)定时器控制寄存器TIMERxTCR
位 |
名称 |
功能描述 |
|||||||||||||||
15 |
TIF |
CPU定时器中断标志位 当定时器计数器递减到零时,该位置1,可以通过软件向该位写1清零 0:写0无影响 1:写1清零 |
|||||||||||||||
14 |
TIE |
定时器中断使能 如果定时计数器递减到0,TIE为使能,定时器向CPU申请中断 |
|||||||||||||||
13、12 |
保留 |
保留 |
|||||||||||||||
11 |
FREE |
CPU定时器仿真模式 |
|||||||||||||||
10 |
SOFT |
CPU定时器仿真模式
|
|||||||||||||||
9~6 |
保留 |
保留 |
|||||||||||||||
5 |
TRB |
定时器重载控制位 0:禁止重载 1:使能重载 |
|||||||||||||||
4 |
TSS |
启动和停止定时器的状态位 0:为了启动或重新启动,将其清零 1:停止状态 |
|||||||||||||||
3~0 |
保留 |
保留 |
2、定时器配置步骤
定时器相关库函数在DSP2833x_CpuTimers.c文件中
(1)使能定时器时钟
EALLOW;
SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
EDIS;
(2)初始化定时器参数,包括制定定时器寄存器地址、周期寄存器值、预定标计数器值等
//指向定时器0的寄存器地址
CpuTimer0.RegsAddr = &CpuTimer0Regs;
//设置定时器0的周期寄存器值
CpuTimer0Regs.PRD.all = 0xFFFFFFFF;
//设置定时器预定标计数器值为0
CpuTimer0Regs.TPR.all = 0;
CpuTimer0Regs.TPRH.all = 0;
//确保定时器0为停止状态
CpuTimer0Regs.TCR.bit.TSS = 1;
//重载使能
CpuTimer0Regs.TCR.bit.TRB = 1;
// Reset interrupt counters:
CpuTimer0.InterruptCount = 0;
(3)定时器的设置
TI提供的库函数“DSP2833x_CpuTimers.c”内已经有函数实现
void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period)
(4)开启定时器中断功能,并使能定时器
//设置定时器0的中断入口地址为中断向量表的INT0
EALLOW;
PieVectTable.TINT0 = &TIM0_IRQn;
EDIS;
//开始定时器功能
CpuTimer0Regs.TCR.bit.TSS=0;
//开启CPU第一组中断并使能第一组中断的第7个小中断,即定时器0
IER |= M_INT1;
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
//使能总中断
EINT;
ERTM;
(5)编写定时器中断服务函数
interrupt void TIM0_IRQn(void)
{
......功能程序
}
dsp 28035(定时器基础)相关推荐
- 电机控制基础——定时器基础知识与PWM输出原理
单片机开发中,电机的控制与定时器有着密不可分的关系,无论是直流电机,步进电机还是舵机,都会用到定时器,比如最常用的有刷直流电机,会使用定时器产生PWM波来调节转速,通过定时器的正交编码器接口来测量转速 ...
- stm32高级定时器 基础知识
stm32高级定时器 高级定时器时基单元: 包含一个16位自动重装载寄存器 ARR 一个16位的计数器CNT,可向上/下计数 一个16位可编程预分频器PSC,预分频器时钟源有多种可选,有内部的时钟.外 ...
- STM32 - 定时器基础应用说明 - 04 - N-pulse waveform generation using one-pulse mode - 用OPM模式产生N次脉冲
前言:N-PULSE模式,就是PLUS模式+Mask(利用UDIS的屏蔽) Repetition的特性: 那么首先-N-PULSE可以定制波形的各个方面,然后,将这个定制进行重复,那不就是可以无限的定 ...
- 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)
一,堆栈在汇编的作用,以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知,单片机从烧程序到达到一定的工作过程.首先明白为什么要引如"烧"写的过程 ...
- DSP 中的基础算法和模型的详细解析
查看全文 http://www.taodudu.cc/news/show-2989078.html 相关文章: 唐端荣|DSP投放引擎的设计与实现 dsp 精准投放_招商加盟行业如何精准获客 DSP投 ...
- Matlab/Simulink代码生成到dsp系列(一)基础配置
0 引言 TI 公司 C2000 系列的 DSP 芯片主要面向数字控制.运动控制领域.在电机控制领域占有主导的地位.但是传统的代码开发方法周期较长,效率不高,有时可读性较差,难以修改.维护.随着工业技 ...
- DSP C语言基础要点
年初到现在,接触DSP已经半年了,由于公司没有人指导,做了这么久都没出什么大的成果,也走了不少的弯路.以前做单片机用C编过一些程序,个人觉得还可以.现在看来也只是在吃以前在学校里面一些C语言皮毛的老本 ...
- STM32 - 定时器基础应用说明 - 03 - Application: timer clocking using external clock-source on ETR timer input
This application describes one use-case of using an external clock-source to clock the timer periphe ...
- 51单片机定时器基础知识
定时器初值计算 经验总结:定时器0工作方式1的溢出中断初始值计算 1.晶振11.0592M 11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期 ...
最新文章
- Unix下C程序内存泄漏检测工具Valgrind安装与使用
- 十步图解CSS的position
- CISCO路由器安全配置
- JavaScript八张思维导图
- Java魔法堂:注解用法详解——@SuppressWarnings
- RTL 和 综合 等一些基本概念的摘记
- 移动互联网派生app研究报告
- leetcode力扣105. 从前序与中序遍历序列构造二叉树
- pyecharts入门及新冠病毒疫情数据可视化(绘制地理图表)
- amd显卡用黑苹果输出黑屏_教大家黑苹果英伟达免驱显卡黑屏怎么解决的方法
- java开发表格,JAVA开发简历表格下载
- 函数信号发生器的功能介绍
- powerpoint中如何使用母版
- 洛谷 P4208 [JSOI2008]最小生成树计数 矩阵树定理
- Apache安装配置(Linux)-有手就行
- pvsyst 7.1使用教程
- Android Study Material Design 十 再探沉浸式
- 三千预算进卡吧的顺口溜是啥
- WiFi_WiFi6和WiFi5区别
- 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ