DSP280x的数模转换使用

/*****************************************************************************
Copyright: 2013
File name: main.c
Description: DSP280x的数模转换设计
Author:
Version: 1.0
Date: 2013.07.23
History: 无
*****************************************************************************/
#include "DSP280x_Device.h"
#include "DSP280x_Examples.h"
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void init(void)
{
 EALLOW;
 EALLOW;
 GpioCtrlRegs.GPAMUX1.bit.GPIO15=0;
 GpioCtrlRegs.GPADIR.bit.GPIO15=1;
 GpioCtrlRegs.GPAMUX2.bit.GPIO27=0;
 GpioCtrlRegs.GPADIR.bit.GPIO27=1;
 GpioCtrlRegs.GPAMUX2.bit.GPIO30=0;
 GpioCtrlRegs.GPADIR.bit.GPIO30=1;
 GpioCtrlRegs.GPAMUX2.bit.GPIO31=0;
 GpioCtrlRegs.GPADIR.bit.GPIO31=1;
 EDIS;
}
void delay(int k)
{
 int i,j;
 for(i=0;i<2505;i++)
  for(j=k;j>0;j--);
}
void display(unsigned char dua)
{
 int k;
 for(k=0;k<8;k++)
 {
  GpioDataRegs.GPADAT.bit.GPIO15=0;
  GpioDataRegs.GPADAT.bit.GPIO27=(dua&0x80)>>7;
  GpioDataRegs.GPADAT.bit.GPIO15=1;
  dua=dua<<1;
 }
 GpioDataRegs.GPADAT.bit.GPIO31=0;
 GpioDataRegs.GPADAT.bit.GPIO31=1;
   
}
void displaynum(unsigned char num,unsigned char wei)
{
 display(num);
 display(wei);
}
/*************************************************
Function: AD_init()
Description: 初始化函数
Calls: NULL
Called By: main()
Table Accessed:
Table Updated:
Input:
Output:
Return:
Others:
*************************************************/
void AD_init(void)
{
 InitSysCtrl();
 InitAdc();
 AdcRegs.ADCTRL1.bit.ACQ_PS=0;//ADC的采样窗口时间,较低的采样频率和较大的采样窗口
 AdcRegs.ADCTRL1.bit.CPS=0;//核时钟预定标器,等于0,未将时钟进行2分频
 AdcRegs.ADCTRL1.bit.SEQ_CASC=1;
 AdcRegs.ADCTRL3.bit.ADCCLKPS=10;//ADC内核时钟分频器
 AdcRegs.ADCTRL3.bit.SMODE_SEL=0;
 AdcRegs.ADCMAXCONV.bit.MAX_CONV1=1;
 AdcRegs.ADCCHSELSEQ1.bit.CONV00=0;
// AdcRegs.ADCTRL2.all = 0x2000;//这一条是关键
 AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
}


/*************************************************
Function: main()
Description: 主函数
Calls: AD_init()
Called By: NULL
Table Accessed:
Table Updated:
Input:
Output:
Return:
Others:
*************************************************/
void main(void)
{
 float adc;
 int a,b;
 AD_init();
 init();
 while(1)
 {
  adc=((float)AdcRegs.ADCRESULT0)*3.0/65520.0;
  a=((int)adc);
  b=((int)(adc*10))%10;
  displaynum(0xef,~table[a]);
  delay(10);
  displaynum(0xdf,~table[b]);
  delay(10);
  displaynum(0xbf,~table[a]);
  delay(10);
  displaynum(0x7f,~table[b]);
  delay(10);
  AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;
 }
}

转载于:https://www.cnblogs.com/luxiaolai/p/3209354.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录......................................................................... 3 序言......................................................................... 7 1 模数转换器(ADC) ......................................................... 11 1.1 功能............................................................... 12 1.2 自动转换序列发生器的工作原理............................................. 14 1.2.1 顺序采样模式.................................................... 15 1.2.2 同步采样模式.................................................... 15 1.3 不间断自动定序模式.................................................... 20 1.3.1 序列发生器启动/停止模式(具有多个时序触发器的序列发生器启动/停止操作)........ 22 1.3.2 同步采样模式.................................................... 24 1.3.3 输入触发器说明.................................................. 24 1.3.4 定序转换期间的中断操作............................................ 25 1.4 ADC时钟预分频器...................................................... 26 1.4.1 ADC模块时钟和采样频率............................................ 27 1.5 低功率模式.......................................................... 27 1.6 上电顺序............................................................ 28 1.7 序列发生器覆盖功能.................................................... 28 1.8 内部/外部参考电压选择.................................................. 28 1.9 偏移误差校正......................................................... 30 2 ADC寄存器.............................................................. 33 2.1 ADC控制寄存器....................................................... 34 2.2 最大转换信道数寄存器(ADCMAXCONV) ......................................... 37 2.3 自动定序状态寄存器(ADCASEQSR)............................................ 39 2.4 ADC状态和标志寄存器(ADCST).............................................. 39 2.5 ADC参考选择寄存器(ADCREFSEL)............................................ 40 2.6 ADC偏移微调寄存器(ADCOFFTRIM) ........................................... 41 2.7 ADC输入信道选择定序控制寄存器............................................ 41 2.8 ADC转换结果缓冲寄存器(ADCRESULTn) ........................................ 42 A 修订历史记录...........................................................

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值