当前位置: 代码迷 >> 单片机 >> 单片机430ADC12,该如何处理
  详细解决方案

单片机430ADC12,该如何处理

热度:142   发布时间:2016-04-28 14:48:27.0
单片机430ADC12
请问有哪位大神知道如何把430单片机AD转换后的结果ADC12MEMX里面的值取出来?直接定义一个变量赋值可以吗?谢谢!
------解决思路----------------------
可以啊,就是这么读,注意定义个16位的变量读
这些你都可以参考示例程序
------解决思路----------------------
引用:
#pragma vector=ADC_VECTOR
__interrupt void ADC12_ISR (void)
{   
    
    if (ADC12MEM0-temp>0x00f)
    { 
      
      P2OUT &= ~BIT4;                      // Clear P2.4 LED off
      //P6OUT &= ~BIT7;
      //P5OUT 
------解决思路----------------------
= BIT7;                      为什么延时?还在中断里面?
      for(i=0;i<100;i++)
        for(j=0;j>110;j++);
    }
    
    else
    {
      
      P2OUT 
------解决思路----------------------
= BIT4;                        // Set P2.4 LED on
      //P6OUT 
------解决思路----------------------
= BIT7;
      //P5OUT &= ~BIT7;
      
    }
    temp=ADC12MEM0;
    _BIC_SR_IRQ(CPUOFF);                  // Clear CPUOFF bit from 0(SR)
}
我们要实现的是通过前后两次AD转换后的结果比较,差如果超过一个数,就执行一定的操作,谢谢


1 尽量不要用空循环延时,白费处理器资源。尤其不能在中断里面延时
2 中断要尽量短,不重要的操作放在主循环里面做
3 注意ADC初始化,你这里应该是要初始化为连续单通道采集
4 可以中断里面读出数据后置一个标志位,主循环处理数据后请标志位
  相关解决方案