/******************************************************************************************************************************** 文件名: 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系列通道单次采样实验》的相关信息,《基于MSP430F1232的ADC10系列通道单次采样实验》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于MSP430F1232的ADC10系列通道单次采样实验》的详细说明。
简介: 基于MSP430F1232的ADC10系列通道单次采样实验。
提醒:《基于MSP430F1232的ADC10系列通道单次采样实验》最后刷新时间 2024-03-14 01:11:12,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于MSP430F1232的ADC10系列通道单次采样实验》该内容的真实性请自行鉴别。