[讨论] AD采样求助!!!!!!!!!!!!!!!!!!!!!!!!!

fxmfxm9304   2014-7-7 23:45 楼主
求助。。。。
代码如下。。。。。
#include
#include
#include "UartTimer.h"
  
#define HAL_ADC_CHN_A7            0x07
#define HAL_ADC_REF_AVDD          0x80   
#define HAL_ADC_DEC_512     0x30
#define ADC_TO_CELSIUS(ADC_VALUE)       ((float)(ADC_VALUE*3.3/4096.0/0.022))
unsigned int value;
uint count=0;             //用于定时器计数
int lock=0;
char buf[10];
void Init()
{     
    T4CTL |= 0x08 ;          //开溢出中断     
    T4IE = 1;                //开T4中断
    T4CTL |= 0xA0;           //不分频
    T4CTL &= ~0x03;          //自动重装 00->0xff  
    T4CTL |= 0x10;           //启动
    ADCIE=0;                 //AD中断
    EA = 1;
}
unsigned int Read_Vddvalue(void)
{
  unsigned int value;
  ADCIF=0;                                                          //清ADC中断标志位
  while(!ADCIF);                                                    //判断是不是转换完成
  value=ADCL>>2;                                                    //结果保存于value中(低位)
  value|=ADCH<<6;                                                   //结果保存于value中(高位)
  return(value);
}
/****************************************************************************
* 程序入口函数
****************************************************************************/
void main(void)
{   
    int nv=0;
    P0_7=1;
    DISABLE_ALL_INTERRUPTS();     //关闭所有中断  
    InitUART();                           //初始化串口
    InitClock();                          //初始化时钟
    Init();
    while(1)
    {
      if(ADCIF)
      {
        ADCIF = 0;
        value=ADCL>>2;                                                    //结果保存于value中(低位)
        value|=ADCH<<6;
        nv=(int)ADC_TO_CELSIUS(value);
        sprintf(buf, "%d", nv);
        UartSendString(buf, strlen(buf));
        //DelayMS(1);
      }
    }
}

//定时器T4中断处理函数
#pragma vector = T4_VECTOR
__interrupt void T4_ISR(void)
{
    IRCON = 0x00;            //清中断标志, 也可由硬件自动完成
    if(++count>250)
    {
      count=0;
      ADCCON3=(HAL_ADC_REF_AVDD|HAL_ADC_DEC_512|HAL_ADC_CHN_A7);
    }

}
为什么定时器0.25ms启动一次ADC(4KHz)但是实际串口发送数据采样率为十赫兹。。。
即采1Hz信号每周期10个点(excel绘图)

回复评论 (2)

点赞  2014-7-8 09:21
有木有大神。。。o(╯□╰)o
点赞  2014-7-8 13:36
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复