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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误
    • ¥199 rust编程架构设计的方案 有偿
    • ¥15 回答4f系统的像差计算