这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » 2812---通用定时器1初始化程序(启动ADC)

共1条 1/1 1 跳转至

2812---通用定时器1初始化程序(启动ADC)

工程师
2014-12-08 19:55:12     打赏

 通用定时器1初始化程序(启动ADC)


 


// $          Date:   4/11/2009        整理:  eyes417      $
//###########################################################################
//


//   FILE :  Example_281xEvTimerPeriod.c#此前在首页部分显示#
//
//  TITLE:  事件管理器GP定时器--周期中断启动ADC转换


//


//                                   ASSUMPTIONS:
//   
//   As supplied, this project is configured for "boot to H0" operation.
//   Other then boot mode pin configuration, no other hardware configuration is required. 


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


 


 #include "DSP281x_Device.h"    


 #include "DSP281x_Examples.h" 


 


interrupt void eva_timer1_isr(void);
void init_eva_timer1(void);


 


void main(void)

  InitSysCtrl();


  InitGpio();        //IO口初始化



  DINT;             //关CPU总中断
  InitPieCtrl();    //初始化PIE控制寄存器
  IER = 0x0000;
  IFR = 0x0000;
  InitPieVectTable();   //初始化PIE中断向量表



  EALLOW; 


//将相应的向量指向中断服务程序,中断发生时,自动跳转
  PieVectTable.T1PINT = &eva_timer1_isr;
  EDIS;   
   


  init_eva_timer1();          //初始化EV-A定时器1


 


//使能PIE中断INT2.4(T1PINT中断)
  PieCtrlRegs.PIEIER2.all = M_INT4;
  IER |= M_INT2 ;


   
  EINT;        // 使能INTM(全局中断)
  ERTM;        // Enable Global realtime interrupt DBGM


 


  for(;;);


 


}


 


//EV-A定时器1初始化
void init_eva_timer1(void)
{
  EvaRegs.GPTCONA.all = 0;
  EvaRegs.T1PR = 0x1200;      // Period---周期值
  EvaRegs.T1CMPR = 0x0000;    // Compare Reg--比较值
   
 //清除周期EV-A定时器1中断位
  EvaRegs.EVAIMRA.bit.T1PINT = 1;
  EvaRegs.EVAIFRA.bit.T1PINT = 1;


 


  EvaRegs.T1CNT = 0x0000;            //计数器初值


 


//递增模式,x/1分频,内部时钟,使能比较,使用自己的周期,立即启动定时器计数
  EvaRegs.T1CON.all = 0x1042;



//启动由EVA定时器1周期中断产生的ADC转换
  EvaRegs.GPTCONA.bit.T1TOADC = 2;


}


 


//EV-A定时器1中断服务函数
interrupt void eva_timer1_isr(void)
{
  ......          //中断服务内容程序


 


//清除定时器中断位
   EvaRegs.EVAIMRA.bit.T1PINT = 1;
   EvaRegs.EVAIFRA.all = BIT7;      //BIT7---0x0080



//响应中断,从而使INT2中断组继续接收中断
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;



}


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]