📄 2808adc2.0.c
字号:
/*********************************************************************
** 功能描述:模数转换程序,对ADCINB7采样,结果从Scib发送出去**
*********************************************************************/
#include "DSP280x_Device.h"
unsigned long int i = 0;
// 模数转换相关寄存器初始化
void Adc_Init()
{
// Configure ADC @SYSCLKOUT = 150Mhz
AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; // 双序列/级连选择:双序列工作模式
AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; // 连续/并发选择:连续采样模式
AdcRegs.ADCTRL1.bit.CONT_RUN = 0; // 启动-停止/连续转换选择:启动-停止模式
AdcRegs.ADCTRL1.bit.CPS = 1; // 核时钟预分频器:ADC_CLK=ADCLKPS/2=3.125M
AdcRegs.ADCTRL1.bit.ACQ_PS = 0xf; // 采集窗口大小:SH pulse/clock=16
AdcRegs.ADCTRL3.bit.ADCCLKPS = 0x2; // 核时钟分频:ADCLKPS=HSPCLK/4=6.25M
AdcRegs.ADCMAXCONV.all = 0x0000; // 转换通道数:SEQ1序列的通道数为1
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0xd; // 转换通道选择:ADCINB5
}
void Adc_PowerUP() // 模数转换模块上电顺序延时
{
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // 模数转换内部参考电压源电路上电
for (i=0; i<1000000; i++){} // 至少5ms延时
AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // 模数转换核模拟电路加电
for (i=0; i<10000; i++){} // 至少20us延时
}
void Scia_init()
{
EALLOW;
GpioCtrlRegs.GPAMUX2.all = 0x0003000; // 设置G4和G5为通信端口
EDIS;
SciaRegs.SCICTL2.all = 0x0000; // 禁止接收和发送中断
SciaRegs.SCILBAUD = 0x00E7; // 波特率=9600
SciaRegs.SCIHBAUD = 0x0001;
SciaRegs.SCICCR.all = 0x0007; // 1个停止位,禁止校验,8位字符
// 禁止自测试,异步空闲线协议
SciaRegs.SCICTL1.all = 0x0023; // 脱离复位状态,使能接收发送
//SciaRegs.SCICTL1.bit.RXENA = 0; // 禁止接收
}
main()
{
InitSysCtrl();
EALLOW;
SysCtrlRegs.HISPCP.all = 0x3;// 高速外设模块时钟HSPCLK=SYSCLKOUT/6=25Mhz
EDIS;
DINT; // 关闭总中断
IER = 0x0000; // 关闭外设中断
IFR = 0x0000; // 清中断标志
Scia_init(); // Scib初始化
Adc_PowerUP();
Adc_Init();
while (1)
{
AdcRegs.ADCTRL2.bit.SOC_SEQ1 = 1; // 用S/W模式启动SEQ1转换序列
while (AdcRegs.ADCST.bit.SEQ1_BSY == 1){} // 判序列忙否
i = AdcRegs.ADCRESULT0 >> 4;
SciaRegs.SCITXBUF = i >> 8;
while(ScibRegs.SCICTL2.bit.TXRDY == 0){}
SciaRegs.SCITXBUF = i;
while(SciaRegs.SCICTL2.bit.TXRDY == 0){}
while(SciaRegs.SCICTL2.bit.TXEMPTY == 0){}// 将转换结果从Scib发送
for (i=0; i<1000000; i++){}
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // 复位排序器到CONV00
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -