基于MSP430F1232的ADC10系列通道单次采样实验

来源:本站
导读:目前正在解读《基于MSP430F1232的ADC10系列通道单次采样实验》的相关信息,《基于MSP430F1232的ADC10系列通道单次采样实验》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于MSP430F1232的ADC10系列通道单次采样实验》的详细说明。
简介: 基于MSP430F1232的ADC10系列通道单次采样实验。

/******************************************************************************************************************************** 文件名:    main.c** 文件描述:  基于MSP430F1232的ADC10系列通道单次采样实验** 版本号:    1.0* * 修改记录:*********************************************************************************************************************************///==============================================================================================================================#include    "io430.h"#include    "in430.h"//==============================================================================================================================unsigned  long int result[3]; //用来存放转换结果的数组unsigned  int AD_VALUE[3]; char   ADC10FLAG=0;  //转换标志/*==============================================================================================================================** 函 数 名: readdata.** 参 数:    无** 功能描述:    *         *          将转换数据读出,存放在 result[3]中;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/void readdata(void){ char i,j=2; for(i=0;i<3;i++) {  result[j] = AD_VALUE[i];  j=j-1; } _NOP();}/*==============================================================================================================================** 函 数 名: Init_Clk.** 参 数:    无** 功能描述:    *         *          基础时钟初始化设置;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/void Init_Clk(void){    int i;      BCSCTL1 = XTS + DIVA_3; do {  BCSCTL1 &= ~XT2OFF; //turn on XT2  IFG1 &= ~OFIFG;  //high frequency crystal is stable  for (i=0; i < 2000; i++)  { } }while ((IFG1 & OFIFG) !=0); // MClk = 6M / 1 = 6M ;  // SMClk = 6M / 8 = 750K; // AClk = 6M / 8 = 750K; BCSCTL2 |= SELM_2 + DIVM_0 + SELS + DIVS_3;}/*==============================================================================================================================** 函 数 名: TimerA_Uint.** 参 数:    无** 功能描述:    *         *          定时器初始化设置,定时1秒;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/void TimerA_Uint(void){    P2DIR  |= 0x02;   // P2.1 output TACTL  = TACLR; TACCR0  = 46875;   //750K/8/46875 =2Hz     TACCTL0  = CCIE; TACTL  = TASSEL_2 + ID_3 + MC_1;}/*==============================================================================================================================** 函 数 名: ADC_Uint.** 参 数:    无** 功能描述:    *         *          ADC10设置,系列通道单次采样;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/void ADC_Uint(void){    ADC10CTL0  &=  ~ENC;  ADC10DTC0  =  ADC10CT; //选择为连续转移数据  ADC10CTL0 |= SREF_1; ADC10CTL0 |= ADC10SHT_3;        ADC10CTL0 |= REFON; ADC10CTL0 |= REF2_5V; ADC10CTL0 |= MSC;  //连续采样转换 ADC10CTL0 |= ADC10IE; ADC10CTL0 |= ADC10ON;  ADC10CTL1 |= INCH_2;  //A2--A0 ADC10CTL1 |= SHS_0; ADC10CTL1 |= CONSEQ_1; //系列通道单次采样  ADC10DTC1  =  0x03;   // 连续采样3次中断一次  ADC10SA  = (unsigned int)AD_VALUE + 1; //数据转移起始地址  ADC10CTL0  |=  ENC  + ADC10SC; }/*==============================================================================================================================** 函 数 名: main.** 参 数:    无** 功能描述:    *         *          系统主程序** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/void main(void){ WDTCTL   =  WDTPW  +  WDTHOLD;  Init_Clk();        TimerA_Uint(); ADC_Uint();  _EINT();while(1){   if(ADC10FLAG==1)   {     ADC10FLAG = 0;     readdata();     _NOP();   }}}/*==============================================================================================================================** 函 数 名: ADC10_ISR.** 参 数:    无** 功能描述:    *         *          ADC10中断服务程序,用于设置转换结束标志;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/// ADC10 interrupt service routine#pragma vector=ADC10_VECTOR__interrupt void ADC10_ISR (void){ ADC10FLAG = 1;}/*==============================================================================================================================** 函 数 名: Timer_A.** 参 数:    无** 功能描述:    *         *          Timer_A中断服务程序,定时1秒钟启动一次转换;** 返 回 值: 无** 作 者: areak 2009/8/16*================================================================================================================================*/#pragma vector=TIMERA0_VECTOR__interrupt void Timer_A (void){    P2OUT ^= 0x02;                            // Toggle P2.1    ADC10CTL0  |=  ENC  + ADC10SC;}//==============================================================================================================================//END OF FILE//==============================================================================================================================

提醒:《基于MSP430F1232的ADC10系列通道单次采样实验》最后刷新时间 2024-03-14 01:11:12,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于MSP430F1232的ADC10系列通道单次采样实验》该内容的真实性请自行鉴别。