云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > DSP28335中文资料

DSP28335中文资料

  • 62 次阅读
  • 3 次下载
  • 2025/5/29 11:05:42

DSP28335测试总结

EALLOW;//允许访问受保护的寄存器 CpuTimer0Regs.TCR.bit.TSS=0;//启动定时器 CpuTimer0Regs.TCR.bit.TIE=1;//使能定时器中断 CpuTimer0Regs.PRD.all=pd;

CpuTimer0Regs.TCR.bit.TRB = 1;//重新装载定时器0 后,定时器0 的计数值为周期寄存器值,计算器开始递减计数 PieVectTable.TINT0 = & SampleRate;

//下面的语句用于使能PIE级以及CPU级中断向量 IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7=1;//使能PIE中的TINT0,1组第7个中断,见文件DSP2833x_PieVect.c EINT;//使能全局中断 EDIS; }

8.5采用定时器的延时函数

//延时函数,鉴于定时器0已经用于产生中断,这里采用定时器1

//但关于定时器1是否可以随意使用的问题Timer程序文件与英文资料的说法不一致

#include \DSP2833x_Device.h\ // DSP2833x Headerfile Include File #include \DSP2833x_Examples.h\ // DSP2833x Examples Include File Uint32 TT;//延时时间对应计数次数 Uint32 RTT;//当前计数器的值

Uint32 PRD;//当前周期寄存器的值 Uint32 CY;//整循环后的余数 int CCY;//整循环次数 int ii;

void delay(float32 time) { //CpuTimer0.RegsAddr= & CpuTimer0Regs; RTT=CpuTimer1Regs.TIM.all;

CpuTimer1Regs.TCR.bit.TSS=0;//启动定时器

CpuTimer1Regs.TCR.bit.TRB = 1;//重新装载定时器1 后,定时器1 的计数值

39

DSP28335测试总结

为周期寄存器值,计算器开始向下计数 if(time<0.0001) time=0.0001; else if(time>10) time=10;

TT=time*150000000;//将中断时间转换为定时器计数个数 PRD=CpuTimer1Regs.PRD.all;

if(RTT>TT) //这说明当前计数器递减计数未减到0就完成延时 {

}

do

{}while(CY>=(RTT - CpuTimer1Regs.TIM.all));

else //当前计数器递减到0不足以完成延时 {

CY=TT-RTT; //延时所需计数次数减去当前读出的计数器值 CCY=CY/PRD; //循环计数次数

CY=CY-CCY*PRD; //整循环后的剩余计数次数 for(ii=0;ii

do

{}while(CpuTimer1Regs.TIM.all>30);//计数器的值小于30就认为已经归零,这是为了保证已经(或即将)完成的整周循环不会被误判 } }

}

do

{}while(CY>=(PRD - CpuTimer1Regs.TIM.all));

8.6看门狗初始化函数

//###########################################################################

// 看门狗初始化程序,入口参数为系统定时复位时间

40

DSP28335测试总结

//在需要复位看门狗计数器的地方调用程序ServiceDog() //此程序在文件DSP2833x_SysCtrl.c中

//###########################################################################

//详细说明在

//《TMS320x2833x, 2823x System Control and Interrupts Reference Guide (Rev. A)》 //57到59页

//看门狗时钟发生器:WDCLK = CLKOUT/512,当HALT时停止。 //CLKOUT为外部时钟,频率30MHz。

//###########################################################################

#include \DSP2833x_Device.h\ // Headerfile Include File #include \DSP2833x_Examples.h\ // Examples Include File void InitWatchDog(void) {

EALLOW; // 允许访问受保护的寄存器 SysCtrlRegs.SCSR = 1;//选择看门狗中断允许 EDIS;

// 使能看门狗 EALLOW; SysCtrlRegs.WDCR &=0x3F; SysCtrlRegs.WDCR |= WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1 //SysCtrlRegs.WDCR WDCLK=OSCCLK/512/1

|= |= |= |= |= |=

0x0028; 0x0029; 0x002A; 0x002B; 0x002C; 0x002D;

//4.4//4.4//8.7//17.5//35//69.9

毫秒复位一次,毫秒复位一次,毫秒复位一次,毫秒复位一次,毫秒复位一次,毫秒复位一次,毫秒复位一次,毫秒复位一次,

0x002E; //139.80x002F;

//279.6

//SysCtrlRegs.WDCR |= WDCLK=OSCCLK/512/1

41

DSP28335测试总结

EDIS; }

42

搜索更多关于: DSP28335中文资料 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

DSP28335测试总结 EALLOW;//允许访问受保护的寄存器 CpuTimer0Regs.TCR.bit.TSS=0;//启动定时器 CpuTimer0Regs.TCR.bit.TIE=1;//使能定时器中断 CpuTimer0Regs.PRD.all=pd; CpuTimer0Regs.TCR.bit.TRB = 1;//重新装载定时器0 后,定时器0 的计数值为周期寄存器值,计算器开始递减计数 PieVectTable.TINT0 = & SampleRate; //下面的语句用于使能PIE级以及CPU级中断向量 IER |= M_INT1; PieCtrlRegs.PIEIER1.bit.INTx7=1;//使能PIE中的TIN

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com