标题: 这是点光源追踪系统的程序,F5529的但是烧录之后舵机一直不转,请帮我看看问题出在哪 [打印本页]
作者: 菜鸡一只 时间: 2015-5-5 22:26
标题: 这是点光源追踪系统的程序,F5529的但是烧录之后舵机一直不转,请帮我看看问题出在哪
#include <msp430f5529.h>
#define uint unsigned int
#define uchar unsigned char
unsigned int a[32],b[4];
unsigned int i=50,j=50;
void delay(uint z);
void pwm();
void circle();
void main( void )
{
P1OUT=0x00;
WDTCTL = WDTPW + WDTHOLD;
UCSCTL4&=0x0000;
pwm();
while(1)
{
ADC12CTL0=ADC12SHT0_2+ADC12ON+ADC12TOVIE; /* 16 x ADC10CLKs *//* ADC10 On/Enable*//* ADC10 Interrupt Enalbe */
ADC12CTL0|=0x0020; /* Reference generator on 0 Reference off 1 Reference on */
ADC12CTL1=ADC12INCH_6; /* Selects Channel 1 */
ADC12CTL1|=ADC12CSTARTADD_6; /* ADC10 Analog Enable 0 */
ADC12CTL0|=ADC12ENC+ADC12SC;/*ADC10 Enable Conversion *//* ADC10 Start Conversion */
_bis_SR_register(CPUOFF+GIE);
b[1]=ADC12MEM;
delay(2);
ADC12CTL0=ADC12SHT0_2+ADC12ON+ADC12TOVIE;
ADC12CTL0|=0x0020;
ADC12CTL1=ADC12INCH_7;
ADC12CTL1|=ADC12CSTARTADD_7;
ADC12CTL0|=ADC12ENC+ADC12SC;
_bis_SR_register(CPUOFF+GIE);
b[3]=ADC12MEM;
delay(2);
ADC12CTL0=ADC12SHT0_2+ADC12ON+ADC12TOVIE;
ADC12CTL0|=0x0020;
ADC12CTL1=ADC12INCH_12;
ADC12CTL1|=ADC12CSTARTADD_12;
ADC12CTL0|=ADC12ENC+ADC12SC;
_bis_SR_register(CPUOFF+GIE);
b[0]=ADC12MEM;
delay(2);
ADC12CTL0=ADC12SHT0_2+ADC12ON+ADC12TOVIE;
ADC12CTL0|=0x0020;
ADC12CTL1=ADC12INCH_13;
ADC12CTL1|=ADC12CSTARTADD_13;
ADC12CTL0|=ADC12ENC+ADC12SC;
_bis_SR_register(CPUOFF+GIE);
b[2]=ADC12MEM;
delay(2);
if(b[1]>b[3])
{
if(b[1]-b[3]>150)
{
TA0CCR1=TA0CCR1+i;
delay(300);
i=i+3;
}
}
if(b[3]>b[1])
{
if(b[3]-b[1]>150)
{
TA0CCR1=TA0CCR1-i;
delay(300);
i=i+3;
}
}
if(b[0]>b[2])
{
if(b[0]-b[2]>150)
{
TA0CCR1=TA0CCR1+j;
delay(300);
j=j+3;
}
}
if(b[2]>b[0])
{
if(b[2]-b[0]>150)
{
TA0CCR1=TA0CCR1-j;
delay(300);
j=j+3;
}
}
}
}
void pwm()
{
P2DIR|=BIT2;
P2SEL|=BIT2;
P2DIR|=BIT3;
P2OUT|=BIT3;
TA0CTL|= MC_1+TASSEL__SMCLK;/*Timer A Control *//* Timer A mode control: 1 - Up to CCR0 */ /* Timer A clocksource select: 2 - SMCLK */
TA0CCTL1 = OUTMOD_7;/* Timer A Capture/Compare Control 1 *//* PWM outputmode: 7 - PWM reset/set */
TA0CCR0 = 20000;
TA0CCR1 = 1000 ;
}
void delay(uint z)
{
uint i,j;
for(i=210;i>0;i--)
for(j=z;j>0;j--);
}
#pragma vector=ADC12_VECTOR
__interrupt void ADC12_ISR(void)
{
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from 0(SR)
}
作者: 菜鸡一只 时间: 2015-5-5 22:29
我的连舵机的线都没有问题,舵机信号线连接着P2.3,烧录之后一直舵机不转,求高手帮忙解决,急。。。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |