找回密码
 立即注册

QQ登录

只需一步,快速开始

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

有没有人知道msp430 ad转换为什么不稳定吗

[复制链接]
跳转到指定楼层
楼主
检测的是有运放后的光敏二极管的信号,代码如下,是晶振的原因吗,还是其他,我用万用表测是不变的,ad却是乱变

  1. #include "MSP430g2553.h"

  2. void main(void)
  3. {
  4.    WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  5.   // ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
  6.    ADC10CTL0|=ADC10ON+ADC10IE+REFON+REF2_5V+SREF_1+MSC+ADC10SHT_2;
  7.    // ADC10CTL0 = ADC10SHT_2 + ADC10ON ; // ADC10ON, interrupt enabled
  8.    //ADC10CTL0=REF2_5V+REFON;
  9.    ADC10CTL1 = INCH_1;                       // input A1
  10.    ADC10AE0 |= 0x02;                         // PA.1 ADC option select
  11.    P1DIR |= 0x01;                            // Set P1.0 to output direction
  12.    P1DIR |=BIT6;
  13.     P1DIR |=BIT3;
  14.    P1OUT  &= ~0x01;
  15.    P1OUT |=BIT6;
  16.     P1OUT |=BIT3;
  17.   while(1)
  18.    {
  19.      ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
  20.      __bis_SR_register(CPUOFF + GIE);        // LPM0, ADC10_ISR will force exit
  21.     if (ADC10MEM >500)
  22.     {
  23.       P1OUT |= 0x01;                         // Clear P1.0 LED ON
  24.       P1OUT |=BIT6;
  25.       break;
  26.     }
  27.    
  28.     else
  29.     {
  30.      P1OUT &=~BIT6;
  31.       P1OUT &= ~0x01;                  // Set P1.0 LED OFF
  32.     }
  33.    }
  34. }

  35. //ADC10 interrupt service routine
  36. #pragma vector=ADC10_VECTOR
  37. __interrupt void ADC10_ISR(void)
  38. {
  39.    __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 0(SR)
  40. }
复制代码


sss.png (88 KB, 下载次数: 48)

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

使用道具 举报

沙发
ID:315988 发表于 2018-4-25 11:03 | 只看该作者
电容并上了吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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