智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1993|回复: 5
打印 上一主题 下一主题

中断

[复制链接]

4

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
威望
761
贡献
452
兑换币
374
注册时间
2012-9-15
在线时间
170 小时
跳转到指定楼层
1#
发表于 2013-4-19 16:45:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,请问这个问题怎么解决啊?为什么只能进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 ;
   
  }

7

主题

101

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1915
威望
738
贡献
1031
兑换币
340
注册时间
2013-4-25
在线时间
73 小时
2#
发表于 2013-4-25 01:31:45 | 只看该作者
中断标志清零没?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
70
威望
46
贡献
16
兑换币
17
注册时间
2013-3-23
在线时间
4 小时
毕业学校
北下关军训学院
3#
发表于 2013-4-30 21:30:22 | 只看该作者
同意楼上
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
威望
761
贡献
452
兑换币
374
注册时间
2012-9-15
在线时间
170 小时
4#
 楼主| 发表于 2013-5-3 16:34:57 | 只看该作者
清了啊,还想请问个问题
请问我要在128里用正玄、余玄那些,加了#include <math.h> 后为什么会出现 Segment already used with different attributes这种错误呢?
回复 支持 反对

使用道具 举报

4

主题

11

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1553
威望
761
贡献
452
兑换币
374
注册时间
2012-9-15
在线时间
170 小时
5#
 楼主| 发表于 2013-5-3 16:35:22 | 只看该作者
飞卡搬砖小工 发表于 2013-4-25 01:31
中断标志清零没?

清了啊,还想请问个问题
请问我要在128里用正玄、余玄那些,加了#include <math.h> 后为什么会出现 Segment already used with different attributes这种错误呢?
回复 支持 反对

使用道具 举报

3

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1848
威望
945
贡献
577
兑换币
605
注册时间
2013-7-23
在线时间
163 小时
6#
发表于 2013-8-30 11:03:29 | 只看该作者
遇到同样的问题,求解答
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 01:55 , Processed in 0.056085 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表