找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3428|回复: 1
打印 上一主题 下一主题
收起左侧

这是点光源追踪系统的程序,F5529的但是烧录之后舵机一直不转,请帮我看看问题出在哪

[复制链接]
跳转到指定楼层
楼主
ID:79017 发表于 2015-5-5 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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)
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:79017 发表于 2015-5-5 22:29 | 只看该作者
我的连舵机的线都没有问题,舵机信号线连接着P2.3,烧录之后一直舵机不转,求高手帮忙解决,急。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表