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

📄 main.c

📁 基于MDK的LPC1100处理器开发应用例程
💻 C
字号:
/****** (C) COPYRIGHT 2010 UP Team, Wuhan University of Technology ************
* 文件名: main.c
* 作者  : UP Team, Wuhan University of Technology
* 日期  : 01/18/2010
* 描述  : 主程序源文件.
*******************************************************************************
*******************************************************************************
* 历史:
* 01/18/2010		 : V1.0		   初始版本
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "LPC11xx.h"                    /* LPC11xx 定义 */
#include "adc.h"
#include "uart.h"

extern volatile uint32_t ADCValue[ADC_NUM];
extern volatile uint32_t ADCIntDone;

#if ADC_DEBUG
extern volatile uint32_t UARTCount;
extern volatile uint8_t UARTBuffer[BUFSIZE];

/**
  * @函数名:ConvertDigital
  * @描述:把数字转换成ASCII码字符
  * @参数:digital 待转换的数据
  * @返回值:转换后的ASCII码字符
  */
uint8_t ConvertDigital ( uint8_t digital )
{
  uint8_t ascii_char;

  if ( (digital >= 'A') && (digital <= 'F') )
  {
	ascii_char = digital - 0x0A;
	ascii_char += 0x41;				/* A~F */
  }
  else
  {
    ascii_char = digital + 0x30;	/* 0~9 */
  }
  return ( ascii_char );
}
#endif

/**
  * @函数名:main
  * @描述:主函数 
  * @参数: 无
  * @返回值:无
  */
int main (void)
{
  uint32_t i, j;
  uint8_t c;

  /* 系统初始化 */  
  SystemInit();

#if ADC_DEBUG  
  /* 配置串口 */
  UARTInit(115200);
#endif

  /* 初始化ADC  */
  ADCInit( ADC_CLK );

#if BURST_MODE				/* 仅仅在中断模式下工作 */
  ADCBurstRead();
  while ( !ADCIntDone );
  ADCIntDone = 0;
#else
  /* 在轮询模式下工作 */
  while (1)
  {
  	  /* 轮询8个ADC的状态 */
	  for ( i = 0; i < ADC_NUM; i++ )
	  {
#if ADC_INTERRUPT_FLAG				/* 中断驱动 */
        /* 读ADC通道i的值 */
		ADCRead( i );
		while ( !ADCIntDone );
		ADCIntDone = 0;
#else
		ADCValue[i] = ADCRead( i );	/* 轮询 */
#endif
#if ADC_DEBUG
		LPC_UART->IER = IER_THRE | IER_RLS;			/* 除能 UART的 RBR */
		/* 把32位整形的值转换成8个字符,以便串口输出 */
		UARTBuffer[0] = ConvertDigital( (uint8_t)(ADCValue[i]>>28));
		UARTBuffer[1] = ConvertDigital( (uint8_t)((ADCValue[i]>>24)&0xF));
		UARTBuffer[2] = ConvertDigital( (uint8_t)((ADCValue[i]>>20)&0xF));
		UARTBuffer[3] = ConvertDigital( (uint8_t)((ADCValue[i]>>16)&0xF));
		UARTBuffer[4] = ConvertDigital( (uint8_t)((ADCValue[i]>>12)&0xF));
		UARTBuffer[5] = ConvertDigital( (uint8_t)((ADCValue[i]>>8)&0xF));
		UARTBuffer[6] = ConvertDigital( (uint8_t)((ADCValue[i]>>4)&0xF));
		UARTBuffer[7] = ConvertDigital( (uint8_t)(ADCValue[i]&0xF));
		UARTBuffer[8] = '\r';
		UARTBuffer[9] = '\n';

		/* 通过串口输出当前ADC的值 */
		UARTSend("ADC", 3);
		c = i + '0';
		UARTSend(&c, 1);
		UARTSend("=", 1);
		UARTSend( (uint8_t *)UARTBuffer, 10 );		 
		LPC_UART->IER = IER_THRE | IER_RLS | IER_RBR;	/* Re-enable RBR */
#endif
      }
	  UARTSend("<-------------------->\r\n", 24);
	  /* 等待大概3s */
	  for (j = 0; j < 0x888888; j++);
  }
#endif
}

/******************************************************************************
**                            End Of File
******************************************************************************/

⌨️ 快捷键说明

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