智能车制作

标题: 中断 [打印本页]

作者: 紫晨123456    时间: 2013-4-19 16:45
标题: 中断
各位大神,请问这个问题怎么解决啊?为什么只能进AD中断啊??
//时钟设置  60M                                      
void PLL_init(){  
CLKSEL=0X00;      // disengage PLL to system
PLLCTL_PLLON=1;   // turn on PLL
SYNR= 0xC0|0x0e;  //SYNR=14
REFDV=0X40|0x03;  //REFDV=3
POSTDIV=0x00;  
_asm(nop);         
_asm(nop);
while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
CLKSEL_PLLSEL =1;          //engage PLL to system;
}
//AD 初始化
void ATD0_init(void)
{
    ATD0CTL1_SMP_DIS=1;   //采样前放电
    ATD0CTL1_SRES1=1;     //12位转换精度
    ATD0CTL1_SRES0=0;     //选择AD通道为外部触发,分辨率为8位精度,采样前不放电
      
    ATD0CTL2_AFFC=1;  //快速清零模式
    ATD0CTL2_ASCIE=1; //ATD转换序列完成中断允许
   
    ATD0CTL3_DJM=1;       //输出序列选择右对齐
    ATD0CTL3_S2C=0;       //转换序列长度为4
    ATD0CTL3_S4C=1;       //转换序列长度为2,NO FIFO、Freeze模式下继续转换
    ATD0CTL4_SMP2=1;      //AD采样时间是ATD时钟周期的4倍
    ATD0CTL4_SMP1=0;
    ATD0CTL4_SMP0=1;
    ATD0CTL4_PRS4=0;      //ATD时钟预分频因子选择位
    ATD0CTL4_PRS3=0;
    ATD0CTL4_PRS2=0;     
    ATD0CTL4_PRS1=0;
    ATD0CTL4_PRS0=0;      //8/(2*( 0 +1))=4M// AD采样时间是ATD时钟周期的4倍  8/(2*( 0 +1)
    ATD0CTL5=0XB0;        //右对齐无符号,单通道采样、通道0
    ATD0DIEN=0x00;        // 禁止数字输入
   
}
//定时器初始化
void  PIT_open(void)   //1.0ms  定时器
  {   
    PITCFLMT_PITE = 0;        
    PITCE_PCE0 = 1;  //开中断数         
    PITMUX_PMUX0 = 0;        
    PITMTLD0 =60-1; //199 ;         
    PITLD0 =1000-1; //999;            
    PITINTE_PINTE0 = 1;        
    PITCFLMT_PITE = 1;      
  }
void main(void) {
  /* put your own code here */
    PLL_init();
    PIT_open();
    ATD0_init();
   
   
EnableInterrupts;

  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  
}
// AD中断
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 22 Int_AD0(void){
  
   DisableInterrupts;     //关中断
   QQ++;
   if(QQ==50)QQ=0;
   
   EnableInterrupts ;   //开中断
}

//-------------定时器溢出中断-------------//
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT( void )                       
  { DisableInterrupts;  
   
    PITTF_PTF0 = 1;
    T++;
    if(T==10){
    T=0;
    }
    EnableInterrupts ;
   
  }


作者: 飞卡搬砖小工    时间: 2013-4-25 01:31
中断标志清零没?
作者: 巫妖    时间: 2013-4-30 21:30
同意楼上
作者: 紫晨123456    时间: 2013-5-3 16:34
清了啊,还想请问个问题
请问我要在128里用正玄、余玄那些,加了#include <math.h> 后为什么会出现 Segment already used with different attributes这种错误呢?

作者: 紫晨123456    时间: 2013-5-3 16:35
飞卡搬砖小工 发表于 2013-4-25 01:31
中断标志清零没?

清了啊,还想请问个问题
请问我要在128里用正玄、余玄那些,加了#include <math.h> 后为什么会出现 Segment already used with different attributes这种错误呢?
作者: WGQHHH    时间: 2013-8-30 11:03
遇到同样的问题,求解答




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2