This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F5659:捕获模式中的计时器 A1 ->CCIFG 永远不会被置位、但会调用中断、COV 每两个中断被置位一次

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/723127/msp430f5659-timer-a1-in-capture-mode---ccifg-is-never-set-but-interrupt-gets-called-cov-is-set-every-two-interrupts

器件型号:MSP430F5659

您好!

我在捕获模式下使用 TA1、外部捕获引脚由32.768kHz 的 PWM 信号驱动。 TA1CCR0的 CCIFG 永远不会被置位、但我仍然会进入计时器中断。 两个中断中的一个、COV 被置位、就像我跳过读取 TA1CCR0一样。 以下是我的代码:

void main (void){

// TA1.0
P3SEL |= BIT1;
P3DIR&=~BIT1;

// TA1CLK
P3SEL |= BIT0;
P3DIR &=~BIT0;

TA1CTL = tassel_TACLK | ID_1 | TLMC_STOP;
TA1CC0 |=


~

CC0 | TA1CC0 |= TAC0 | TAC0 | TAC0 = TAC0 | TAC0 | TAC0 = TAC0 | TCC1CAP


#if defined (__TI_Compiler_version__)|| defined (__IAR_systems_icc_)|| Defined (__CrossWork__)
#pragma vector=Timer1_A0_vector
__interrupt void ISR_Timer1_a0 (void)
#Elif defined (__GNU_)&(_ TI_TI_TIvector



(_ TI_TIv_TI_TIv_TIv_TIver_vector)__interrupt (_ TIvert1_TA0_TIvector)#t1)#t1 (void TI_TI_TIvate_TIvert_TI_TIvate_TIvector (void CC0_TA0_TA0
如果(!((P3IN & BIT1)=BIT1)){
/*执行某些操作*/
} 否则{
/*执行其他操作*/
}
}否则、如果(TA1CCTL0 & COV){
TA1CCTL0 &=~COV;
/*执行某些操作*/
}

我在中断中放置一个断点、TA1CCR0的值持续增加、但 CCIFG 标志永远不会置位。 我缺少什么吗?

谢谢、

Fred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CCTL0的 CCIFG 在进入 CCR0 ISR 时复位。 这仅适用于 CCR0。

    相反:如果您到达 CCR0 ISR、则您知道 CCIFG 已触发(之前)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    那么、中断捕获中断(CCIFG)的唯一原因是什么、COV 只是我需要检查的一个标志吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    COV 始终伴随捕获事件[用户指南 SLAU367O 图 25-11]、所以它不会自行生成 CCIFG。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、非常感谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fred、

    我很高兴看到你的问题已经得到解答。

    《系列用户指南》(文献编号:SLAU208 )的第17.2.4节对捕获模式进行了说明和可视化、并介绍了 CCIFG 何时置位以及 COV 位在何种情况下置位。 您可以查看进一步的参考。

    如果还有其他开放点、请随时发表评论。

    此致、

    Britta

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    布里塔女士轻轻地提醒我再次清洁眼镜。

    正如她所说、在 F5 (非 FR5)用户指南(SLAU208O)中、我提到的图为图17-11。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢大家、

    实际上、通过查看图17-11、我意识到如果 COV 被置位、我的 CCIFG 中断必须工作。 我刚刚没有读过"当 TAxCCR0中断时 TAxCCR0 CCIFG 标志自动复位"这句话

    请求得到服务。" 自 SLAU208起。

    祝你度过美好的一天!

    Fred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Fred、

    我很高兴听到这些文件澄清了这种情况。
    是否有任何未决项目应在此处讨论? 如果没有、请告诉我、以便我可以关闭此主题。

    谢谢、此致、
    Britta