有偿求一份MSP430F5529AB相霍尔编码电机测速程序(PWM已调,仅需测速)
你的编码器AB相分别接入到了哪个脚
复制代码
1 #include "MSP430F5529.h"
2 void Sys_Init(){
3 P1DIR |=BIT2;
4 P1SEL |=BIT2;
5 P1DIR |=BIT3;
6 P1SEL |=BIT3;
7
8 P7DIR |=BIT4+BIT0;
9 P7OUT |=BIT4; //AN1=1 反转
10 P7OUT &=~BIT0; //AN2=0
11
12 TA0CCR0=800;
13 TA0CCTL1=OUTMOD_7;
14 TA0CCR1=500;
15 TA0CCTL2=OUTMOD_7;
16 TA0CCR2=500;
17 TA0CTL =TASSEL_1+MC_1+TACLR;
18 }
19
20 int main( void )
21 {
22 // Stop watchdog timer to prevent time out reset
23 WDTCTL = WDTPW + WDTHOLD;
24 int i;
25 char SpeedMode=0;
26 Sys_Init();
27 while(1)
28 {
29 for(i=0;i<4000;i++); //延迟
30
31 if(SpeedMode==0) //加速模式下
32 {
33 TA0CCR1++; //占空比不断提高
34 P1DIR |=BIT0;
35 P1OUT |=BIT0;
36 if(TA0CCR1>=500) SpeedMode=1; //到达100%后转为减速模式
37 }
38 if(SpeedMode==1) //减速模式下
39 {
40 TA0CCR1--; //占空比不断降低
41 if(TA0CCR1<=200) SpeedMode=0; //到达40%后转为加速模式
42 }
43 }
44 }
复制代码