您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页定时器

定时器

来源:爱go旅游网


#include \"DSPf28833x_project.h\"

//...........函数声明

interrupt void cpu_time0_isr(void);

interrupt void cpu_time1_isr(void);

interrupt void cpu_time2_isr(void);

//...........主程序

void main ()

{

//系统初始化,对pll,watchdog,enable,peripheral,chlocks进行初始化

InitSysCtrl();//TI公司提供的 dspf2883x_Sysctrl.c的头文件

//禁止cpu中断

DINT;

//初始PIE模块的寄存器到默认状态;禁止所有PIE中断;中断表标志位都为0;

InitPieCtrl();

//禁止cpu中断并清除cpu中断标志位。

IER=0x0000;

IFR=0x0000;

//初始化中断向量列表

InitPieVectTable()

//为中断向量列表中的特定向量写入中断服务函数的地址

;

//this is needed to write to EALLOW portacted registers

PieVecTable.TINT0=&cpu_time0_isr;

PieVecTable.TINT13=&cpu_time1_isr;

PieVecTable.TINT2=&cpu_time2_isr;

EDIS;

InitCpuTimers()

//为定时器设定中断周期,同时在函数内部使能定时器中断

#if(CPU_FRQ_150MHZ)

ConfigCpuTimer(&CpuTimer0,150,1000000);

ConfigCpuTimer(&CpuTimer1,150,1000000);

ConfigCpuTimer(&CpuTimer2,150,1000000);

#endif

#if(CPU_FRQ_100MHZ)

ConfigCputimer(&CpuTimer0,100,100000);

ConfigCpuTimer(&CpuTimer1,100,100000);

ConfigCpuTimer(&Cputimer2,100,100000);

//启动定时器开始运行

CpuTimer0Regs.TCR.all=0x4001;

CpuTimer1Regs.TCR.all=0x4001;

Cputimer2Regs.TCR.all=0x4001;

//cpu级;使能cpu级信号中断

IER|=M_INT1;

IER|=M_INT13;

IER|=M_INT14;

//使能全局中断

EINT;

ERTM;

//等待定时器中断

for( ; ; );

}

//===================中断服务子函数=============

interrupt void cpu_timer0_isr(void)

{

CpuTimer0.InterruptCount++;

pieCtrlRegs.PIEACK.all=PIEACK_GROUP1;

}

interrput void cpu_timer1_isr(void)

{

CpuTimer1.InterruptCount++;

EDIS;

}

interrput void cpu_timer2_isr(void)

{

EALLOW;

CpuTimer2.InterrputCount++;

EDIS;

}

//=================================

//======end of file.

//=================================

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务