我正在尝试以下代码以在主循环的 ccr1为800旋转我的直流电机、当 IR 传感器从高电平变为低电平时、我将通过连接 IR 传感器来生成外部中断程序进入 ISR 并以 ccr1为300旋转; 之后、我将清除中断标志;但我的程序仍不会从 ISR 中退出。
请帮我解决这个问题
我是否需要在我的计划中添加额外的代码;如果需要、建议这样做;
封装:
#include "msp430g2553.h"
#include "intrinsics.h"
void main (void)
{
WDTCTL = WDTPW + WDTHOLD;//看门狗计时器设置
IF (CALBC1_1MHz =0xFF || CALDCO_1MHz =0xFF)
{
while (1);
}
BCSCTL1 = CALBC1_1MHz;//设置范围
DCOCTL = CALDCO_1MHz;//设置 DCO 步长+调制
P1DIR |= BIT2;
P1SEL |= BIT2;
// P1DIR |=~BIT3;
//P1IN |= BIT3;
P1IE |= BIT3;// P1.3中断被启用
P1IES |= BIT3;// P1.3高/低边沿
P1IFG &=~BIT3;// P1.3 IFG 被清零
bis_SR_register (GIE);
_ENABLE_INTERRUPT ();//启用所有中断
CCR0=1000-1;
CCTL1=OUTMOD_7;
CCR1=800;
TACTL=tassel_2+MC_1_ID_3;
}
#pragma vector=Port1_vector
_interrupt void Port_1 (void)
{
//P1DIR |= BIT2;
// P1SEL |= BIT2;
CCR0=1000-1;
CCTL1=OUTMOD_7;
CCR1=300;
TACTL=tassel_2+MC_1_ID_3;
P1IFG &=~BIT3;
}
感谢您;
此致、
Naveen Kulkarni
MTECH
MSRIT、班加罗尔