搜索
bottom↓
回复: 0

求教关于MSP430F2132的AD转换的.

[复制链接]

出0入0汤圆

发表于 2010-8-15 15:04:37 | 显示全部楼层 |阅读模式

旋钮电路图 (原文件名:QQ截图未命名.png)

我用MSP430F2132接一个旋钮进行AD转换  .想得到的结果是,如果旋到第一档,亮P3.0这个LED灯,第二档,亮P3.1.从第六档开始,亮P3.5的LED灯.

出现的问题是:第一档亮第二个灯,,第二档亮第三个灯,第三档亮第4个灯 ,第4,第5档都亮第5个灯,其他亮第6个灯..

旋钮上电,不接AD转换引脚时,电压分别是 0.237  0.460   0.678 0.881  1.10  1.30  1.52  1.72  1.97  2.24  2.49  2.77/V
旋钮是电,芯片上电,接上AD转换引脚时,电压分别是   0.665  0.962  1.16  1.36  1.45  1.55  1.74  1.83  1.94  2.04  2.224  2.52  

我的程序 是
#include "msp430f2132.h"


int flag=0;
unsigned int adc_value=0;
unsigned int index=0;
unsigned int temp1=0;
unsigned int temp2=0;
unsigned int temp3=0;
unsigned int Results[32];
unsigned int Average=0;

#define T0_Start() TACTL|=MC_1
#define adc_start() ADC10CTL0|=ADC10SC

void timer_init(void)
{
TACTL |= MC_0; //stop
TACTL|=TASSEL_1;//设定ACLK为时钟源

CCTL0|=CCIE;    //开启比较中断

CCR0 = 5000;

  _NOP();
  _BIS_SR(GIE);
}



void adc_init(void)
{
  ADC10AE0=0x80;     //使能通道7
  ADC10CTL0&=~(ENC); //disable adc
  ADC10CTL0|= SREF_0;        //+REFONVR+ = VREF+ and VR- = AVSS , Reference on
  ADC10CTL0|=  MSC +ADC10ON + ADC10IE+ADC10SHT_3;  //ADC10 Multiple SampleConversion,打开ADC,允许中断

  ADC10CTL1|=CONSEQ_2;   //选择单通道重复模式
   ADC10CTL1|=INCH_7;     //选择通道7
  
  _NOP();
  _BIS_SR(GIE);
  

}

int main( void )
{
  // Stop watchdog timer to prevent time out reset
     WDTCTL = WDTPW + WDTHOLD;
  P3SEL |= 0x80;
  P3DIR=0X3F;  //////是p2.0~p2.7为输出,接led
  P3OUT=0x3f; //////p2.0~p2.7输出低电平,led熄灭
// P3OUT=0xef;
// flag=3;
  
  adc_init();
  timer_init();
   
  T0_Start();
     
  ADC10CTL0|=ENC;////使能adc
  ADC10CTL0|=ADC10SC; ////adc开始转换
   while(1)
  {
  }
#pragma vector=ADC10_VECTOR
__interrupt void adc_isr(void)
{
Results[index++]=ADC10MEM;
  if(index == 2)
  {
         int i;
         
         Average = 0;
         for(i = 0; i < 2; i++)
         {
           Average += Results;
                     
         }
         Average=Average/2; //除以2求平均值
         index = 0;
         temp1=(unsigned char)(Average/88);
         
         if(temp1<6)
         {
            flag=temp1;
         }
else
         {
           flag=6;
         }
   }
  else
    adc_start();
}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void timer2_ovf_isr(void)
{
  
   switch(flag)
    {
    case 1:
      P3OUT=0xfe;  ///p3.0输出低电平,
      break;
    case 2:
      P3OUT=0xfd;  ///p3.1输出低电平,
      break;
    case 3:
      P3OUT=0xfb;  ///p3.2输出低电平,
      break;
    case 4:
      P3OUT=0xf7;  ///p3.3输出低电平,
      break;
    case 5:
      P3OUT=0xef;  ///p3.4输出低电平,
      break;
    case 6:
      P3OUT=0xdf;  ///p3.5输出低电平,
      break;
      
    default:
      break;
    }
  
}

刚刚开始学习430  ,求教各位高手.

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 17:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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