DSP28335配置TIM0定时器代码
时间: 2024-06-11 14:02:32 浏览: 238
在DSP28335中配置TIM0定时器需要进行以下几个步骤:
1. 配置时钟模块,设置系统时钟为150MHz。
2. 配置GPIO模块,使能定时器的GPIO引脚。
3. 配置TIM0计数器,设置定时器的计数模式和计数值。
4. 配置TIM0中断,设置定时器中断的触发源和优先级。
下面是一个基本的DSP28335配置TIM0定时器的代码示例:
```
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
void Init_Timer0(void)
{
// Step 1: 配置时钟模块
InitSysCtrl();
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
// Step 2: 配置GPIO模块
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; //将GPIO0引脚配置为TIM0计数输入
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0; //使能GPIO0引脚上拉
EDIS;
// Step 3: 配置TIM0计数器
EALLOW;
CpuTimer0Regs.TCR.all = 0x4000; //禁止计数器
CpuTimer0Regs.TCR.bit.TSS = 1; //停止计数器
CpuTimer0Regs.PRD.all = 15000000; //设置计数器周期为0.1s
CpuTimer0Regs.TCR.bit.TRB = 1; //复位计数器
CpuTimer0Regs.TCR.bit.FREE = 0; //计数器不自由运行
CpuTimer0Regs.TCR.bit.SOFT = 0; //使用硬件触发
CpuTimer0Regs.TCR.bit.TIE = 1; //使能计数器中断
EDIS;
// Step 4: 配置TIM0中断
PieCtrlRegs.PIECTRL.bit.ENPIE = 1; //使能PIE模块
PieVectTable.TINT0 = &cpu_timer0_isr; //设置中断向量表
IER |= M_INT1; //使能中断源
PieCtrlRegs.PIEIER1.bit.INTx7 = 1; //使能对应的中断
// Step 5: 启动计数器
EALLOW;
CpuTimer0Regs.TCR.bit.TSS = 0; //启动计数器
EDIS;
}
interrupt void cpu_timer0_isr(void)
{
// TIM0中断服务函数
}
void main(void)
{
Init_Timer0(); //初始化TIM0定时器
while(1)
{
// 程序主循环
}
}
```
阅读全文