2812 PWM波程序

3986阅读 0评论2010-09-10 red_eyed_hare
分类:嵌入式

初始化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;
}
上一篇:2812 定时器程序
下一篇:汇编指令大全