TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx

上传人:b****3 文档编号:15881179 上传时间:2022-11-16 格式:DOCX 页数:4 大小:15.48KB
下载 相关 举报
TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx_第1页
第1页 / 共4页
TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx_第2页
第2页 / 共4页
TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx_第3页
第3页 / 共4页
TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx

《TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx(4页珍藏版)》请在冰豆网上搜索。

TMS320F2812外设例程系列之EvTimerPeriodWord格式文档下载.docx

//功能函数原型

interruptvoideva_timer1_isr(void);

interruptvoideva_timer2_isr(void);

interruptvoidevb_timer3_isr(void);

interruptvoidevb_timer4_isr(void);

voidinit_eva_timer1(void);

voidinit_eva_timer2(void);

voidinit_evb_timer3(void);

voidinit_evb_timer4(void);

//全局变量

Uint32EvaTimer1InterruptCount;

Uint32EvaTimer2InterruptCount;

Uint32EvbTimer3InterruptCount;

Uint32EvbTimer4InterruptCount;

//主程序

voidmain(void)

{

//步骤1.初始化系统控制(PLL,看门狗,使能外设时钟)

InitSysCtrl();

//步骤2.初始化GPIO

//InitGpio();

//本例中跳过

//步骤3.清除所有中断并初始化PIE中断向量表,禁止CPU中断

DINT;

//初始化PIE控制寄存器

InitPieCtrl();

//禁止CPU中断并清除所有CPU中断

IER=0x0000;

IFR=0x0000;

//初始化PIE中断向量表

InitPieVectTable();

//本例中用到的中断映射

EALLOW;

PieVectTable.T1PINT=&

eva_timer1_isr;

PieVectTable.T2PINT=&

eva_timer2_isr;

PieVectTable.T3PINT=&

evb_timer3_isr;

PieVectTable.T4PINT=&

evb_timer4_isr;

EDIS;

//步骤4.初始化所有外设

//InitPeripherals();

//本例中不需要,可以跳过

init_eva_timer1();

init_eva_timer2();

init_evb_timer3();

init_evb_timer4();

//步骤5.使能中断

//初始化计数值为0

EvaTimer1InterruptCount=0;

EvaTimer2InterruptCount=0;

EvbTimer3InterruptCount=0;

EvbTimer4InterruptCount=0;

PieCtrlRegs.PIEIER2.all=M_INT4;

//使能INT2.4(T1PINT)

PieCtrlRegs.PIEIER3.all=M_INT1;

//使能INT3.1(T2PINT)

PieCtrlRegs.PIEIER4.all=M_INT4;

//使能INT4.4(T3PINT)

PieCtrlRegs.PIEIER5.all=M_INT1;

//使能INT5.1(T4PINT)

//使能CPU中断INT2(T1PINT)、INT3(T2PINT)、INT4(T3PINT)、INT5(T4PINT)

IER|=(M_INT2|M_INT3|M_INT4|M_INT5);

//使能全局中断和全局实时DBGM中断

EINT;

//使能全局中断INTM

ERTM;

//使能全局实时中断DBGM

//步骤6.空循环

for(;

;

);

}

//EVA定时器1初始化程序

voidinit_eva_timer1(void)

//初始化EVA定时器1:

配置定时器1寄存器组(EVA)

EvaRegs.GPTCONA.all=0;

//配置通用定时器1周期为0x0200

EvaRegs.T1PR=0x0200;

//周期

EvaRegs.T1CMPR=0x0000;

//比较寄存器值

//使能通用定时器1周期中断位、递增计数、内部时钟模式、使能比较

EvaRegs.EVAIMRA.bit.T1PINT=1;

EvaRegs.EVAIFRA.bit.T1PINT=1;

EvaRegs.T1CNT=0x0000;

//清除通用定时器1的计数器

EvaRegs.T1CON.all=0x1742;

EvaRegs.GPTCONA.bit.T1TOADC=2;

//定时器1周期中断启动EVAADC转换

//EVA定时器2初始化程序

voidinit_eva_timer2(void)

//初始化EVA定时器2:

设置定时器2寄存器组(EVA)

//配置通用定时器2的周期为0x0200;

EvaRegs.T2PR=0x0400;

EvaRegs.T2CMPR=0x0000;

//比较寄存器

//使能通用定时器2周期中断、递增计数、内部时钟模式、使能比较

EvaRegs.EVAIMRB.bit.T2PINT=1;

EvaRegs.EVAIFRB.bit.T2PINT=1;

EvaRegs.T2CNT=0x0000;

//清除通用定时器2的计数器

EvaRegs.T2CON.all=0x1742;

EvaRegs.GPTCONA.bit.T2TOADC=2;

//周期中断启动EVAADC转换

//EVB定时器3初始化程序

voidinit_evb_timer3(void)

//初始化EVB定时器3:

//设置定时器3寄存器组(EVB)

EvbRegs.GPTCONB.all=0;

//配置通用定时器3的周期为0x0200;

EvbRegs.T3PR=0x0800;

//周期

EvbRegs.T3CMPR=0x0000;

//比较寄存器

//使能通用定时器3周期中断、递增计数、内部时钟模式、使能比较

EvbRegs.EVBIMRA.bit.T3PINT=1;

EvbRegs.EVBIFRA.bit.T3PINT=1;

EvbRegs.T3CNT=0x0000;

//清除通用定时器3的计数器

EvbRegs.T3CON.all=0x1742;

EvbRegs.GPTCONB.bit.T3TOADC=2;

//定时器3周期中断启动EVAADC转换

//EVB定时器4初始化程序

voidinit_evb_timer4(void)

//初始化EVB定时器4:

//设置定时器4寄存器(EVB)

//配置通用定时器4的周期为0x0200;

EvbRegs.T4PR=0x1000;

EvbRegs.T4CMPR=0x0000;

//使能通用定时器4周期中断、递增计数、内部时钟模式、使能比较

EvbRegs.EVBIMRB.bit.T4PINT=1;

EvbRegs.EVBIFRB.bit.T4PINT=1;

EvbRegs.T4CNT=0x0000;

//清除通用定时器4的计数器

EvbRegs.T4CON.all=0x1742;

EvbRegs.GPTCONB.bit.T4TOADC=2;

//定时器4周期中断启动EVAADC转换

//EVA定时器1中断服务程序

interruptvoideva_timer1_isr(void)

EvaTimer1InterruptCount++;

//使能来自这个定时器的更多的中断

EvaRegs.EVAIFRA.all=BIT7;

//注意,为了安全,写一个掩码到程序整体

PieCtrlRegs.PIEACK.all=PIEACK_GROUP2;

//应答中断接收更多的来自PIE第2组的中断

//EVA定时器2中断服务程序

interruptvoideva_timer2_isr(void)

EvaTimer2InterruptCount++;

EvaRegs.EVAIFRB.all=BIT0;

PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;

//应答中断接收更多的来自PIE第3组的中断

//EVB定时器3中断服务程序

interruptvoidevb_timer3_isr(void)

EvbTimer3InterruptCount++;

EvbRegs.EVBIFRA.all=BIT7;

PieCtrlRegs.PIEACK.all=PIEACK_GROUP4;

//应答中断接收更多的来自PIE第4组的中断

//EVB定时器4中断服务程序

interruptvoidevb_timer4_isr(void)

EvbTimer4InterruptCount++;

EvbRegs.EVBIFRB.all=BIT0;

PieCtrlRegs.PIEACK.all=PIEACK_GROUP5;

//应答中断接收更多的来自PIE第5组的中断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1