原创 LM3S ADC采样内部温度

2010-5-9 08:34 3228 6 7 分类: MCU/ 嵌入式

Stellaris 系列 ARM 集成有一个 10 位的 ADC 模块,支持 8 个输入通道,以及一个内部温度传感器。ADC 模块含有一个可编程的序列发生器,可在无需控制器干涉的情况下对多个模拟输入源进行采样。每个采样序列均对完全可配置的输入源、触发事件、中断的产生和序列优先级提供灵活的编程。


在 Stellaris 系列的 ADC 模块里,附带了一个内置的温度传感器,能够随时检测芯片的温度。该温度传感器可以有以下用途: 
测试用:在单独测试 ADC 模块的功能时,而不必提供外部的模拟信号源
测量芯片自身温度,防止可能出现的过温(高温应用场合必备)
估算环境温度:芯片温度总是比环境温度略高,如果通过实验找到这个差值,则可以进行软件修正
在随机算法里可以提供随机数种子


 


/*
*********************************************************************************************************
*                                                LM3SXXX
*                                          The Real-Time Kernel
*                                          Paul of  OgawaStudio 
* Version    : V1.0
*Description : ADC操作
*function  : ADC操作
*            : 适用芯片LM3S615(目前只用到615中,其余没有测试。。。)
* Note(s)    : 最后修改日期 2010-5-5
*            : Copyright @ 2010
*    : at 2010-5-5
*********************************************************************************************************
*/
#include<lm3sxxx.h>


/*! @ define
********************************************************************************
函数名   : define  
功能     : define some values,variable and so on
参数     : define
作者     : paulhyde
*******************************************************************************/
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long


ulong x;
ulong Sysclk;


void init(void );
    
/*! @ main
********************************************************************************
函数名   : int main(void) 
功能     : 主函数
参数     : void
作者     : paulhyde
*******************************************************************************/


int main()
{
 init();
 while(1)
 {
  ADCProcessorTrigger(ADC_BASE,0);
  GPIOPinWrite(GPIO_PORTA_BASE,0xff,~((151040UL-255*x)/1024));
  GPIOPinWrite(GPIO_PORTA_BASE,0xff,~((151040UL-255*x)%1024/102));


  SysCtlDelay(Sysclk/100);
 } 
}


    
/*! @ void init()
********************************************************************************
函数名   : void init() 
功能     : init the dev.
参数     : void
作者     : paulhyde
*******************************************************************************/
void init()
{
 SysCtlLDOSet(SYSCTL_LDO_2_75V);
 SysCtlClockSet(SYSCTL_XTAL_6MHZ | SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL  | SYSCTL_OSC_MAIN ); //The crystal is 20 MHz
// SysCtlClockSet(SYSCTL_XTAL_16MHZ);
 Sysclk=SysCtlClockGet();


 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); // GPIO A
 GPIODirModeSet(GPIO_PORTA_BASE,0XFF,GPIO_DIR_MODE_OUT); //OUT MODE



 SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC); //ADC
 SysCtlPeripheralEnable(SYSCTL_ADCSPEED_1MSPS);


 ADCSequenceDisable(ADC_BASE,0);


 ADCSequenceConfigure(ADC_BASE,0,ADC_TRIGGER_PROCESSOR,0);
    ADCHardwareOversampleConfigure(ADC_BASE,16);


 ADCSequenceStepConfigure(ADC_BASE,0,0,ADC_CTL_END | ADC_CTL_TS | ADC_CTL_IE);


 ADCIntEnable(ADC_BASE,0);
 IntEnable(INT_ADC0);
 IntMasterEnable();


 ADCSequenceEnable(ADC_BASE,0);
}


void ADCinit()
{
 ADCIntClear(ADC_BASE,0);
 ADCSequenceDataGet(ADC_BASE,0,&x);
}
 


可以的话顶起哇......
  

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-3-31 09:33

ADCProcessorTrigger(ADC_BASE,0); GPIOPinWrite(GPIO_PORTA_BASE,0xff,~((151040UL-255*x)/1024)); GPIOPinWrite(GPIO_PORTA_BASE,0xff,~((151040UL-255*x)%1024/102)); 不明白

相关推荐阅读
用户379454 2012-09-01 09:12
目前我看过最好的lm3s USB书籍,推荐给大家!
基本信息 ISBN:9787512408722 作者:王川北 定价:52.00元 出版社:北京航空航天大学出版社 出版时间:2012年08月 开本:16开 装帧:平装 字数...
用户379454 2010-07-30 08:14
595作动态扫描程序(for lm3s6959)
595作动态扫描程序(for lm3s6959)  使用RTL写的简单电子时钟程序。.......
用户379454 2010-06-25 12:29
RTX51 Tiny 编程
kc 本RTX51 Tiny 编程书介绍的信息包含如何去使用Keil RTX51 Tiny 实时内 核,适用于各种51 系列的单片机,对于熟练运用51 单片机的高手来说可以通过 本书进行51 单片机...
用户379454 2010-06-10 09:56
Mum计划(本自一只鱼的EE小站)
10月10日Mum计划之urjtag、gdbproxy的下载速度优化 国庆假期宅在北京,下回放假一定要出去走走。不过也有收获,就是今天这篇文章。本文的主要内容是如何修改urjtag和gdbproxy的...
用户379454 2010-06-10 09:53
Mum计划之MumJTAG——ARM和Blackfin JTAG调试电缆(FT2232电缆)硬件制作
Mum计划之MumJTAG——ARM和Blackfin JTAG调试电缆(FT2232电缆)硬件制作 距离上次更新已经3个多月了。 这段时间我工作的重点在电磁兼容测试上,这东西估计没有什么人有兴趣吧?...
用户379454 2010-06-10 09:53
Mum计划之MumJTAG——ARM和Blackfin JTAG调试电缆(FT2232电缆)硬件制作
Mum计划之MumJTAG——ARM和Blackfin JTAG调试电缆(FT2232电缆)硬件制作 距离上次更新已经3个多月了。 这段时间我工作的重点在电磁兼容测试上,这东西估计没有什么人有兴趣吧?...
我要评论
1
6
关闭 站长推荐上一条 /1 下一条