打印
[MSP430]

终端问题

[复制链接]
1135|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雪人0517|  楼主 | 2013-9-2 15:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近写了一个程序,用了两个中断:
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA(void)

#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA(void)
定时器A进入中断修改产生的PWM德占空比,频率大约30K,
ADC进行电压采样,这是代码
#pragma vector=ADC_VECTOR
__interrupt void ADC12ISR (void)
{
  _EINT();
  _BIS_SR(LPM0_bits + GIE);
if(index0< Num_of_Results)
  results0[index0++] = ADC12MEM0;               // Move results
if(index0< Num_of_Results)
  results1[index1++] = ADC12MEM1;               // Move results
}
我在主程序里执行操作,当index0==Num_of_Results(32)时,把采样数据显示出来。
现在如果屏蔽掉其中任一个中断,则另一个中断能正常工作。但是,两个都打开的话,两个就都不行了。主程序里不再显示,定时器A也不会改占空比了。
ADC的初始化如下
void ADC12Init( void )
{
  ADC12CTL0 = ADC12ON+SHT0_8+MSC;           // 打开ADC,设置采样时间
  ADC12CTL1 = SHP+CONSEQ_3;     // 选择存储器地址,使用采样定时器
  ADC12MCTL0 = INCH_0;                      // ref+=AVcc, channel = A0
  ADC12MCTL1 = INCH_1   +EOS;   // 表示序列的最后一个端口                                // ref+=AVcc, channel = A1
P6SEL |= BIT0;                            //使能ADC通道
    P6SEL |= BIT1;                            //使能ADC通道

P6DIR |= BIT0;
    P6DIR |= BIT1;
  P6OUT |= BIT0;
  P6OUT |= BIT1;

  ADC12IE = 0x03;                           // 使能ADC中断,p6.1,.2端口转换完成后进入中断
  ADC12CTL0 |= ENC;                         // 使能转换
}
希望我描述的够清楚了,更希望又高人帮忙解决。鞠躬!!!
补充一下:即使在主程序里不作任何判断,就是让它显示各数也不行了!!!
单片机是f149

相关帖子

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

本版积分规则

1

主题

1

帖子

0

粉丝