打印
[菜农助学交流]

【第三批】ADC通道1和VBG电源实验

[复制链接]
2648|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xianghou|  楼主 | 2011-10-29 21:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xianghou 于 2011-10-30 08:01 编辑

基于RL-RTX的ADC转换,结果通过串口发到电脑。
顺便说一下,新塘的数据手册写的真是烂到家了。翻了几遍了,愣是没找到VBG是多少

初始化代码
 
#include "NUC1xx.h"
#include "drvsys.h"
#include "drvgpio.h"
#include "drvuart.h"
#include "drvadc.h"
static void ClockInit( void )
{
UNLOCKREG();
DrvSYS_SetOscCtrl( E_SYS_XTL12M, ENABLE );
DrvSYS_SelectPLLSource( E_SYS_EXTERNAL_12M );
DrvSYS_Open(48000000);  
DrvSYS_SelectSysTickSource( 3 );
}
static void UartInit( void )
{
STR_UART_T sParam;
sParam.u32BaudRate = 115200;  
sParam.u8cDataBits = DRVUART_DATABITS_8;
sParam.u8cStopBits = DRVUART_STOPBITS_1;
sParam.u8cParity   = DRVUART_PARITY_NONE;
sParam.u8cRxTriggerLevel = DRVUART_FIFO_1BYTES;
DrvSYS_SelectIPClockSource(E_SYS_UART_CLKSRC, INTERNAL_HCLK);
DrvUART_Open (UART_PORT0, &sParam);
DrvGPIO_InitFunction(E_FUNC_UART0_RX_TX);
}
static void ADCInit( void )
{
DrvADC_Open(ADC_SINGLE_END, ADC_SINGLE_CYCLE_OP, (1 << 1) | (1 << 7), EXTERNAL_12MHZ, 11);   //Set adc parameter
DrvADC_ConfigADCChannel7( INTERNAL_BANDGAP );
DrvGPIO_InitFunction(E_FUNC_ADC1);
DrvADC_EnableSelfCalibration();  //start calibration
while(DrvADC_IsCalibrationDone() == 0);
}
void SystemInit( void )
{
ClockInit();
UartInit();
ADCInit();
}
/* 重定向PRINTF函数到串口1*/
int putchar(int __c)
{
if(DrvUART_Write(UART_PORT0, (unsigned char *)__c, 1))
  return 1;
else
  return 0;
}
主函数代码
 

#include "NUC1xx.h"
#include <rtl.h>
#include "drvgpio.h"
#include "bsp.h"
#include "drvuart.h"
#include "drvadc.h"
#include <stdio.h>

__task void ledtask( void )
{

for( ;; )
{  
  unsigned int i;
  float j;
  DrvADC_StartConvert();   //start first convert
  os_dly_wait( 200 );
  i = DrvADC_GetConversionData( 1 );
  j = (float)i * 3.3 / 4095;
  printf("The ADC Channel 1 Voltage:%1.3f V\n", j);

  i = DrvADC_GetConversionData( 7 );
  j = (float)i * 3.3 / 4095;
  printf("The VBG Voltage:%1.3f V\n", j);
}
}
__task void taskinit( void )
{
os_tsk_create(ledtask, 1);  //创建任务
os_tsk_delete_self();   //删除自己
for( ;; )
{
}
}

int main( void )
{

os_sys_init( taskinit ); //启动任务调度器
while( 1 )
{
}
}

未命名.JPG (118.56 KB )

未命名.JPG

ADC.rar

252.52 KB

相关帖子

沙发
dong_abc| | 2011-10-29 22:20 | 只看该作者
一如继往的顶RTX,顶楼主。

使用特权

评论回复
板凳
xianghou|  楼主 | 2011-10-29 22:25 | 只看该作者
一如继往的顶RTX,顶楼主。
dong_abc 发表于 2011-10-29 22:20


多谢兄弟

使用特权

评论回复
地板
hotpower| | 2011-10-29 22:55 | 只看该作者
希望楼主贴出主要的代码~~~

使用特权

评论回复
5
xianghou|  楼主 | 2011-10-30 08:02 | 只看该作者
希望楼主贴出主要的代码~~~
hotpower 发表于 2011-10-29 22:55


已经贴了主要代码了

使用特权

评论回复
6
weshiluwei6| | 2011-10-30 11:08 | 只看该作者
什么是VBG啊

使用特权

评论回复
7
xianghou|  楼主 | 2011-10-30 13:42 | 只看该作者
间隙电压

使用特权

评论回复
8
linqing171| | 2011-10-30 16:19 | 只看该作者
楼上翻译的怪异。
能隙参考源。一种低精度的参考源,单片机里面集成的一般都是,BandGap Refrence。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

94

帖子

2

粉丝