注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
604042101的个人空间 https://home.eeworld.com.cn/space-uid-406251.html [收藏] [复制] [分享] [RSS]
日志

紧急求助,关于Launchpad G2231的程序问题

已有 579 次阅读2012-5-11 23:18

你好 能留个联系方式吗?  我是个新手,编的程序有点问题。想请您帮帮忙,。行吗 ?
下面这个程序,是一个自动检测和控制开关的程序。P1.7为ADC检测,当检测到电压时,让P1.5输出高电平;没有
检测到时,隔段时间给P1.5一个脉冲。    P1.0可以忽略不看
#include <msp430g2231.h>
#include<in430.h>
#define uint unsigned int
#define uchar unsigned char
uint a=0;
void delay(uint m);
void init();
void main(void)
  init();
    
  while(1)
  {
       ADC10CTL0 |= ADC10SC;             // Sampling open
     if(a==1)
       { 
         P1OUT |= BIT5;
         delay(500);
         P1OUT &=~BIT0;
       }
     else
       {
         while(a==0)
         {   
          ADC10CTL0 |= ADC10SC;
            delay(500);
        
            if(a==1)
              break;
           P1OUT &=~BIT5;
           P1OUT &=~BIT0;  
            //_NOP();
              delay(20000);
            P1OUT |= BIT5;
      
         }
       }
     
  }
}


// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
    P1DIR|=BIT0;
    P1OUT|=BIT0;
    if (ADC10MEM > 0x1FF)
      {a=1;
      }
    else
      a=0;
}

void init()
{
    WDTCTL = WDTPW + WDTHOLD;
    ADC10CTL0 = ADC10IE + ADC10ON;             // Set sampling time, turn on ADC12
    //ADC10CTL1 = SHS_0;                          // Use sampling timer
    ADC10CTL0 |= ENC;                         // Conversion enabled
    ADC10CTL1 |=INCH_7;
    ADC10AE0 |=BIT7;
    P1DIR |=BIT5;
    P1OUT |=BIT5;
     _EINT();
}

void delay(uint m )
{
   int x,y;
   for(x=m;x>0;x--)
     for(y=100;y>0;y--);
}
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章