如上图.请教Susan,看有没有办法。解决?
1)p2.5长时间低电平,突然收到上升沿中断在激活到PWM输出,延迟比较久,对比后面第1次6ms多,后面的1.8-1.9ms
2)p2.5高电平占空比不能调的非常大,如果超过90%之后,可能导致上升沿中断不触发了?导致pwm输出功能失效。
3)p2.5高电平占空比,会影响中断启动延迟,如1)。调小占空比,会导致PWM输出延迟变长。
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.
p2.5长时间低电平
请问您P2.5处的触发以及中断服务程序是怎样的?若是可以的话,请给一下代码,谢谢
问题其实可以收敛到,只是IO中断响应延迟的问题。
简单实验如下:P2.5变化中断,同步改变P3.0状态。第一次触发响应延迟6ms,后续快速周期性触发1.8ms左右
#include <msp430.h> void Cpu_int(void) { if (CALBC1_1MHZ==0xFF) { while(1); } DCOCTL = 0; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; } void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT Cpu_int(); //P2.5 上升沿输入中断设置 P2DIR|=BIT5; P2REN&=~BIT5; P2IES&=~BIT5; P2OUT&=~BIT5; P2IFG&=~BIT5; P2DIR&=~BIT5; P2IE|=BIT5; //p3.0 trigger out P3DIR |= BIT0; //P3REN|=BIT0; _EINT(); __low_power_mode_1(); } //mcu-triggerin #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { P2IFG&=~(BIT5 | BIT4); if(P2IN&BIT5) //p2.5: mcu-triggerIn { P3OUT|=BIT0; P2IES|=BIT5; }else{ P3OUT&=~BIT0; P2IES&=~BIT5; } }