📄 main.c
字号:
#include "44b.h"
#include"uhal.h"
#include "option.h"
#include"def.h"
#pragma import(__use_no_semihosting_swi)
/********************************************/
// ARM实验:A/D接口应用测试
// 描述:A/D转换程序
// 修改日期:2006年3月14日
/********************************************/
#define ADCCON_FLAG 0x40
#define ADCCON_SLEEP 0x20
#define ADCCON_ADIN0 (0x0<<2)
#define ADCCON_ADIN1 (0x1<<2)
#define ADCCON_ADIN2 (0x2<<2)
#define ADCCON_ADIN3 (0x3<<2)
#define ADCCON_ADIN4 (0x4<<2)
#define ADCCON_ADIN5 (0x5<<2)
#define ADCCON_ADIN6 (0x6<<2)
#define ADCCON_ADIN7 (0x7<<2)
#define ADCCON_READ_START 0x2
#define ADCCON_ENABLE_START 0x1
void init_ADdevice()
{//初始化
rADCPSR=20;
rADCCON=ADCCON_SLEEP;
}
int GetADresult(int channel)
{
rADCCON=(channel<<2)|ADCCON_ENABLE_START;
Delay(10);
while(!(rADCCON&ADCCON_FLAG));//转换结束
return rADCDAT;//返回采样值
}
int main(void)
{
int i;
float d;
ARMTargetInit(); //开发版初始化
init_ADdevice();
Uart_Printf("\n*************************************************************************");
Uart_Printf("\n* 南京航空航天大学ARM7开发平台 ");
Uart_Printf("\n* A/D TEST ");
Uart_Printf("\n* 编写时间: 2006-03-14 with ADS 1.2 ");
Uart_Printf("\n*-----------------------------------------------------------------------*\n");
Uart_Printf("通过改变通道1和通道2的电位计的值来改变采样数据\n");
Uart_Printf("通过向通道3和通道4直接输入模拟电压来改变采样数据\n");
while(1){
for(i=0; i<=3; i++){//采样0~3路A/D值
d=GetADresult(i)*2.5/1023; // 数据 采集,处理
Uart_Printf("通道%d=%f\t",i,d);
Delay(1000);
}
Uart_Printf("\r");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -