weixin_45207744 2019-06-09 12:00
浏览 186

为什么测频函数中TA1无法因为捕获进入中断

int main( void )
{ WDTCTL = WDTPW+WDTHOLD;
DCOCTL|=CALDCO_16MHZ;

BCSCTL1|=CALBC1_16MHZ;
Lcd_Init(); //初始化OLED

LCD_Clear(WHITE); //清屏
TA1CTL=TASSEL_2 + ID_0 + MC_1+ TAIE + TACLR; //TA01增计数至16000
TA1CCR0=16000-1;
TA1CCTL0 |= CCIE;
P1DIR&=~BIT1;
P1SEL|=BIT1;
TA0CTL=TASSEL_2 + MC_2 + TAIE + TACLR; //TA0连续计数
TA0CCTL1|=CAP+CM_1+CCIS_0+SCS+CCIE;
BCSCTL2=SELS;
ADC10CTL0 &= ~ENC;
ADC10CTL1 |= INCH_1 + ADC10SSEL_3+CONSEQ_0; // 选择通道A0 时钟源选择SMCLK
ADC10CTL0 |= ADC10SHT_2+ ADC10ON + ADC10IE; // ADC10ON, interrupt 选择内部参考源3.6V 4个ADC周期;
ADC10AE0 |= BIT1;//通道A0使能
_EINT();
while(1){
ADC10CTL0 |= ENC + ADC10SC;
for(int m=0;m {
if(a[199] a[199] = a[m];
if(a[0]>a[m])
a[0]=a[m];
}
max = a[199];
min = a[0];
ADC = 2*(max - min)*3.6/1024;
ADCss=ADC*100;
ADCs=ADCss%100;
}
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A1(void)
{ xianshi();
LCD_Clear(WHITE);
f=f;
fss=f*100;
fs=fss%100;
}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0(void)
{

switch(TA0IV)
{ case 2:f= TA_cnt*65536+TA0CCR1-PerVal;
PerVal=TA0CCR1;
TA_cnt=0;
break;
case 4:break;
case 10:TA_cnt= TA_cnt+1;
break;

}

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!