请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F417 大家好。
我不熟悉此论坛、 我尝试使用 MSP430F417驱动步进电机。 我要做的是、让电机在特定的旋转角度后停止。
我在 CCS 中编写代码、由于互联网上没有太多示例、我很困惑。 请告诉我哪里出了错误吗?
以下是我的代码:
以下是我的代码:
#include <msp430.h>
#define SM_clk 1000000
#define servo_freq 50
#define Stepper BIT4
int step=0;
void main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
__bis_SR_register(LPM0+GIE);
int PWM_periyot =SM_clk/servo_freq;
P1DIR = 0xFF;
P2DIR = 0XFF;
P3DIR = 0xFF;
P4DIR = 0XFF;
P5DIR = 0xFF;
P6DIR = 0XFF;
P2IE |= BIT1;
P2IES |= BIT1;
P2IFG &= BIT1;
CCR1 = TAIE;
TA1CCR1 = PWM_periyot;
TA1CCR1 = 0;
TA1CCTL1 = OUTMOD_7;
TA1CTL=TASSEL_2+MC_1;
.
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer_A(void){
switch(TA1IV){
case 0:
TA1CCR1 = 600;
__delay_cycles(19400);
TA1R=0X000;
break;
case 1:
TA1CCR1 = 1125;
__delay_cycles(18875);
break;
case 2:
TA1CCR1 = 1650;
__delay_cycles(18350);
break;
case 3:
TA1CCR1 = 2175;
__delay_cycles(17825);
break;
case 4:
TA1CCR1 = 2700;
__delay_cycles(17300);
break;
}
}
