打印

中断问题

[复制链接]
1356|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
licuimei521|  楼主 | 2013-9-27 11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
licuimei521|  楼主 | 2013-9-27 11:57 | 只看该作者
/*****************T1周期中断***********************************/
   EvaRegs.T1CON.bit.TMODE=2;      //计数模式为连续增计数
   EvaRegs.T1CON.bit.TPS=1;        //T1CLK=HSPCLK/2=37.5MHz
   EvaRegs.T1CON.bit.TENABLE=0;    //暂时禁止T1计数
   EvaRegs.T1CON.bit.TCLKS10=0;    //使用内部时钟
   
   EvaRegs.GPTCONA.bit.T1TOADC=2;  //周期中断启动ADC
   
   EvaRegs.EVAIMRA.bit.T1PINT=1;   //使能定时器T1的周期中断
   EvaRegs.EVAIFRA.bit.T1PINT=1;   //清除定时器T1的周期中断标志位
   
   EvaRegs.T1PR=0x0EA6;            //周期为0.1ms
   EvaRegs.T1CNT=0;                //初始化计数器寄存器

/***************************定时器4测速**************************************/
  EvbRegs.T4CON.bit.TMODE=2;//连续增
        EvbRegs.T4CON.bit.TPS=0;//预定标寄存器为1,TCLK=75/2=37.5,
                                //              0,TCLK=75
        EvbRegs.T4CON.bit.TENABLE=0;//暂时禁止T4计数
        EvbRegs.T4CON.bit.TCLKS10=0;//使用内部时钟
        EvbRegs.T4CON.bit.TECMPR=1;//使能定时器比较操作

        EvbRegs.GPTCONB.all=0;
        EvbRegs.T4PR=0xffff;  
        EvbRegs.T4CNT=0;
        EvbRegs.EVBIFRB.bit.T4PINT=1;
        EvbRegs.EVBIMRB.bit.T4PINT=1;//T4周期中断

/*****         CAP6              **********/
        EvbRegs.CAPCONB.bit.CAPRES=0;
        EvbRegs.CAPCONB.bit.CAP6EN=0;//CAP6//主程序打开
        EvbRegs.CAPCONB.bit.CAP6TSEL=0;//CAP6选择T4
        EvbRegs.CAPCONB.bit.CAP6TOADC=0;//不动ADC
        EvbRegs.CAPCONB.bit.CAP6EDGE=1;//上升沿

        EvbRegs.CAPFIFOB.bit.CAP6FIFO=0;//状态值里预存一个值,每次捕获都进入中断
        EvbRegs.EVBIMRC.bit.CAP6INT=1;//CAP6中断使能
        EvbRegs.EVBIFRC.bit.CAP6INT=1;//CAP6中断标志复位

main()
{
// int i ,j;

  //int xianshi[4]={0,0,0,0}; /*显示初值*/
  InitSysCtrl();      //系统初始化      
  Init_Port();
  DINT;
  IER=0X0000;
  IFR=0X0000;
  InitPieCtrl();
  InitPieVectTable();      
  ADinitial();
  InitEv();
  huanxiang();
  delay1();
  delay1();
  
  EALLOW;
  PieVectTable.ADCINT=&adc_isr;
  PieVectTable.CAPINT6=&CAPINT_ISR;
  PieVectTable.T4OFINT=&T4PINT_ISR;
  EDIS;
  IER|=M_INT1;
  IER|=M_INT5;
  PieCtrlRegs.PIEIER1.bit.INTx6=1;
  PieCtrlRegs.PIEIER5.bit.INTx5=1;
  PieCtrlRegs.PIEIER5.bit.INTx4=1;
  EINT;
  ERTM;
  EvaRegs.T1CON.all=0x0040;//使能定时器 T1,T3,T4
  EvbRegs.T3CON.all=0x0040;
  EvbRegs.T4CON.all=0x0040;
  EvbRegs.CAPCONB.bit.CAP6EN=1;






interrupt void T4PINT_ISR(void)
   {
        count++;//count1++
       
        T4count++;       
         if (T4count==1)
          {
          
           cap6count=0;
           EvbRegs.T4CNT=0;
          }
          if(T4count>=1001)
          {
            t=((float)(T4count-1)*65535+EvbRegs.T4CNT)/75000000;
            SPEED=(float(cap6count))/t;
            SPEED+=0.5;
            SRM.wEst_10xrpm=SPEED;
            T4count=0;
            cap6count=0;
            
             if(SRM.wEst_10xrpm>400)//Ilimit值待定  电流限幅值
       {
        Ilimit=305;
       }
      else
       {
        Ilimit=365;  
       }

            
            
          
          }
  EvbRegs.EVBIFRB.bit.T4OFINT=1;
  EvbRegs.EVBIMRB.bit.T4OFINT=1;
  PieCtrlRegs.PIEACK.bit.ACK5=1;
  EINT;


   }
/*************************CAP6捕获计数***********************************/
interrupt void CAPINT_ISR(void)

{   
       cap6count++;
            EvbRegs.EVBIFRC.bit.CAP6INT=1;//中断标志复位
            EvbRegs.EVBIMRC.bit.CAP6INT=1;//中断使能
     PieCtrlRegs.PIEACK.bit.ACK5=1;//相应第五组中断CAP6
            EINT;
     }



Adc_Result[0]=(long)AdcRegs.ADCRESULT0;
    Adc_Result[1]=(long)AdcRegs.ADCRESULT1;
    Adc_Result[2]=(long)AdcRegs.ADCRESULT2;
    Adc_Result[3]=(long)AdcRegs.ADCRESULT7;

AdcRegs.ADCTRL2.bit.RST_SEQ1=1;   //复位SEQ1
  AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;  //清除INT SEQ1 位
  PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;//响应中断
  EINT;

使用特权

评论回复
板凳
licuimei521|  楼主 | 2013-9-27 11:58 | 只看该作者
EALLOW;
   PieVectTable.ADCINT=&ADC_ISR;
   PieVectTable.CAPINT6=&CAPINT6_ISR;
   PieVectTable.T4OFINT=&T4PINT_ISR;
   EDIS;
这块粘错了  程序应该没问题  
到底哪里出问题了

使用特权

评论回复
地板
licuimei521|  楼主 | 2013-9-27 14:17 | 只看该作者
封贴  解决问题的感觉真好  哈哈  

使用特权

评论回复
5
dirtwillfly| | 2013-9-27 17:00 | 只看该作者
licuimei521 发表于 2013-9-27 14:17  封贴 解决问题的感觉真好 哈哈

问题解决了?

使用特权

评论回复
6
licuimei521|  楼主 | 2013-9-28 10:43 | 只看该作者
dirtwillfly 发表于 2013-9-27 17:00
问题解决了?

是呢  

使用特权

评论回复
7
dirtwillfly| | 2013-9-28 12:34 | 只看该作者
licuimei521 发表于 2013-9-28 10:43
是呢

:lol能否分享下如何解决的?

使用特权

评论回复
8
licuimei521|  楼主 | 2013-10-9 09:21 | 只看该作者
dirtwillfly 发表于 2013-9-28 12:34
能否分享下如何解决的?

我告诉你 我会丢人的  :lol

使用特权

评论回复
9
dirtwillfly| | 2013-10-9 09:23 | 只看该作者
licuimei521 发表于 2013-10-9 09:21
我告诉你 我会丢人的

:lol明白了。问题解决了,那就结贴吧
结贴方法:https://bbs.21ic.com/icview-442857-1-1.html

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

33

帖子

0

粉丝