⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad12.c

📁 该代码来自2008年湖北电子设计大赛位移测量装置制作,主要实现位移的自动测量和手动测量,msp430单片机
💻 C
字号:
#include"ad12.h"
#include"key.h"
#define    Num_of_Results     50
 double A0results[2];    // A0 
 double A1results[2];    // A1 
void init_adc12()
{ 
    P6SEL = 0x03;
    ADC12CTL0 = ADC12ON+MSC+SHT0_8; //开ADC12 模块+采样信号由 SHI 仅首次触发 
    ADC12CTL1 = SHP+CONSEQ_3+ADC12DIV_3; 
    ADC12MCTL0 = INCH_0; 
    ADC12MCTL1 = INCH_1+EOS; 
    ADC12IE = 0x03; 
    ADC12CTL0 |= ENC; 
    ADC12CTL0 |= ADC12SC;
    _EINT();
}

// ADC12 中断服务程序 
#pragma vector=ADC12_VECTOR 
__interrupt void ADC12ISR (void) 
{ 
    A0results[1] = ADC12MEM0; 
    A1results[1] = ADC12MEM1;
    A0results[1] = A0results[1]*ref/4095;
    A1results[1] = A1results[1]*ref/4095;
    A0results[0] += A0results[1];   //移动 A0结果往数组,此操作的同时清除 ADC12FIG.0 
    A1results[0] += A1results[1];    //移动 A1结果往数组,  此操作的同时清除 ADC12FIG.1
    
    if(index == Num_of_Results-1 && nRes != 3)
    {
      if(initsucces==1)
      {
        Go_where(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);      
        //countvalue2(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);//双显示
        A0results[1] = A0results[0]/Num_of_Results;
        A1results[1] = A1results[0]/Num_of_Results;
      }
      A0results[0]=0;
      A1results[0]=0;
      ADC12CTL0 &= ~ENC;
    }            
    if(index == Num_of_Results-1 && nRes == 3)
    {
      if(initsucces==1)Go_where(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);
     // countvalue2(A0results[0]/Num_of_Results,A1results[0]/Num_of_Results);//双显示
      A0results[0]=0;
      A1results[0]=0;
      if(keyscan()==10) nRes=2;    
    }
    index = (index+1)%Num_of_Results;   // 增加结果的索引,取 index 变量的模(余数)
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -