Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542161
  • 博文数量: 104
  • 博客积分: 4131
  • 博客等级: 上校
  • 技术积分: 1137
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-31 15:05
文章分类

全部博文(104)

文章存档

2011年(13)

2010年(23)

2009年(68)

我的朋友

分类: 嵌入式

2010-09-10 10:33:08

初始化EV:
void InitEv(void)
{
   EALLOW;
  
   //初始化定时器1和pwm1~6的输出 
   EvaRegs.T1PR =  timer1_freq;  // 设定PWM载波频率20K
   EvaRegs.T1CNT = 0x0000;      // 定时器1计数器  
   EvaRegs.T1CON.all = 0x0b40;//8 分频,使能定时器操作,连续增减模式
   // EvaRegs.T1CON.all = 0x0c40;//16分频,使能定时器操作,连续增减模式,内部时钟
   //EvaRegs.DBTCONA.all = 0x03f8;//32分频,死区时间2.5us左右
  
   EvaRegs.DBTCONA.all =0;
   //EvaRegs.GPTCONA.bit.T1TOADC =2;//定时器1周期中断启动ADC
   EvaRegs.GPTCONA.bit.T1TOADC = 0; //不启动ADC中断
   EvaRegs.EVAIMRA.bit.T1PINT=1;//定时器1周期中断允许
   EvaRegs.EVAIFRA.bit.T1PINT=1;//清除标志
   // 使能 PWM1-PWM6
   EvaRegs.CMPR1 = timer1_freq;
   EvaRegs.CMPR2 = timer1_freq;
   EvaRegs.CMPR3 = timer1_freq; 
   EvaRegs.COMCONA.all = 0x8200;//使能比较操作?pwm1~6由相应的比较逻辑驱动

   /************************************************************
   // 初始化定时器2
   EvaRegs.T2PR =t2prd;;       // 定时器2的周期为20k 
   EvaRegs.T2CNT =0x0000;      // Timer2 counter  
   EvaRegs.T2CON.all =0x1440;//16分频,使能定时器操作,连续增模式  
   EvaRegs.EVAIMRB.bit.T2PINT = 1;//定时器2周期中断允许
   EvaRegs.EVAIFRB.bit.T2PINT = 1;//清除标志
   ************************************************************/
  
 
  //电机错误中断处理程序
   //EvaRegs.EVAIFRA.bit.PDPINTA=1;//清除PDPINTA中断标志
   //EvaRegs.EVAIMRA.bit.PDPINTA=1;//PDPINTA中断允许
 
   PieCtrl.PIEIER2.bit.INTx4=1;//T1pint中断
   EDIS;
}
阅读(3745) | 评论(0) | 转发(0) |
0

上一篇:2812 定时器程序

下一篇:汇编指令大全

给主人留下些什么吧!~~