标题: 请问这段点光源追踪系统的代码是不是有问题。。 [打印本页]

作者: 菜鸡一只    时间: 2015-5-7 10:47
标题: 请问这段点光源追踪系统的代码是不是有问题。。

就是中间那些INCH数值跟AE0的数值不对应啊!我运行起来舵机老是乱转,求高手帮忙,我急用。。感激!!!!

#include "msp430g2553.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;

BCSCTL1 = CALBC1_1MHZ;

DCOCTL = CALDCO_1MHZ;

pwm();

while(1)

{

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10CTL0 |= 0x0020;

ADC10CTL1 = INCH_4; // input A1

ADC10AE0 |= 0x10; // PA.1 ADC option select

ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit b[1]=ADC10MEM;

delay(2);

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10CTL0 |= 0x0020;

ADC10CTL1 = INCH_3; // input A3

ADC10AE0 |= 0x08; // PA.3 ADC option select

ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit b[3]=ADC10MEM;

delay(2);

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled ADC10CTL0 |= 0x0020;

ADC10CTL1 = INCH_0; // input A0

ADC10AE0 |= 0x01; // PA.0 ADC option select

ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit b[0]=ADC10MEM;

delay(2);

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled

ADC10CTL0 |= 0x0020;

ADC10CTL1 = INCH_5; // input A2

ADC10AE0 |= 0x20; // PA.2 ADC option select

ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start __bis_SR_register(CPUOFF + GIE); // LPM0, ADC10_ISR will force exit b[2]=ADC10MEM;

delay(2);

if(b[1]>b[3])

{

if(b[1]-b[3]>150)

{

CCR1=CCR1+i;

delay(300);

i=i+3;

}

}

if(b[3]>b[1])

{

if(b[3]-b[1]>150)

{

CCR1=CCR1-i;

delay(300);

i=i+3;

}

}

if(b[0]>b[2])

{

if(b[0]-b[2]>150)

{

CCR1=CCR1+j;

delay(300);

j=j+3;

}

}

if(b[2]>b[0])

{

if(b[2]-b[0]>150)

{

CCR1=CCR1-j;

delay(300);

j=j+3;

}

}


}

}


void pwm()

{

P1DIR|=BIT2;

P1SEL|=BIT2;

P1DIR|=BIT6;

P1SEL|=BIT6;

TACTL|= MC_1+TASSEL_2; CCTL1 = OUTMOD_7;

CCR0 = 20000;

CCR1 = 1000 ;

}

void delay(uint z)

{

uint i,j;

for(i=210;i>0;i--)

for(j=z;j>0;j--);

}

#pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR(void) {

__bic_SR_register_on_exit(CPUOFF); }


// Clear CPUOFF bit from 0(SR)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1