100
时 间 记 忆
100
最 新 评 论
100
专 题 分 类
100
最 新 日 志
100
最 新 留 言
100
搜 索
用 户 登 录
100
友 情 连 接
博 客 信 息
100


 
DSP28335入门(三)定时器
[ 2022/1/21 23:26:00 | By: 欧高技术 ]
 
最开始以为28335的PWM会和其定时器有关系,后面才知道。没啥关系,28335的PWM输出是由ePWM模块控制的;这里的定时器主要用来定时中断。跟STM32有所区别,但是原理一样,只是产生的方式有所不同。

//C28335一共三个定时器timer0、1、2
//timer0、1为通用定时器
//timer2主要用于操作系统时,若没有移植操作系统,可以将其作为通用定时器

//在初始化系统函数
InitSysCtrl();
//禁止产生中断
DINT;
//初始化PIE控制函数
InitPieCtrl();
//PIE向量表初始化
InitPieVectTable();
//将自定义的定时器中断函数映射到向量表中
PieVectTable.TINT0 = &cpu_timer0_isr;
//配置定时器
InitCpuTimers();
//配置定时器中断周期 参数:定时器结构体指针, 定时器频率(MHz), 目标周期时间(uS)
//T=Freq*Period/150000000(s)
ConfigCpuTimer(&CpuTimer0, 150, 500000);
//开启定时器
CpuTimer0Regs.TCR.all = 0x4001;
//使能CPU级中断:设置第一组中断源将会产生,
IER |= M_INT1;
//使能PIE级中断:第一组中断组中的第七个小中断
PieCtrlRegs.PIEIER1.bit.INTx7 = 1;
//开启中断
EINT;
//主循环

//自定义的中断服务函数
interrupt void cpu_timer0_isr(void){
//中断次数计数器
CpuTimer0.InterruptCount++;
//中断内容

//确认第一组cpu中断结束
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
1
2

 
  • 标签:数字信号处理器 
  • 群组:DSP开发知识 
  • 发表评论:
    100
    Powered by ASTAR.