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

📄 atd.c

📁 dp256的AD应用,在CODDIER环境下实现AD数据采集
💻 C
字号:
/*------------------------------------------------------------
|   	     ATD MODULE FOR MC9S12DP256B USING ATD0           |
|  WRITE: WANG JUN PENG
|  DATE : 2004 -05 28
|  NOTE :           
*/
#define ATD_GLOBALS
#include "includes.h"

void SetADLen(unsigned char len)
{
	unsigned char c;
	c=(len&0x0f);
	if(c==0)c=8;
	ATD0_SLEN = c;
	c=(c<<3);
	_ATD0CTL3.Byte|=c;
}										

void InitATD(unsigned char slen)
{
	_ATD0CTL2.Byte=0xe2;//11100010
						//Enable ATD
						//complete Flag Fast Clear
						//stop in wait mode
						//enable ATD sequence complete interrupt
	_ATD0CTL3.MergedBits.FRZ=1;//ADC stoped when enter debug/background mode after current convertion
	SetADLen(slen);//Set ATD Sequence length
	_ATD0CTL3.Bits.FIFO=0;//Disable FIFO function
	_ATD0CTL4.MergedBits.PRS=5;//ATDCLK=Bus Clk/2/(5+1) this is the default set value
	_ATD0CTL4.MergedBits.SMP=1;//4 A/D conversion clock periods
	_ATD0CTL4.MergedBits.SRES_8=1;//8 bits ATD result	
}

void StartATD(unsigned char ch)
{
	unsigned char c;
	_ATD0CTL2.Bits.ADPU=1;
	c=0x90;//Right justified data in the result registers.
		   //Unsigned data representation in the result registers
		   //Continuous conversion sequences (scan mode)---0xb0 -- not use
		   //Sample across several channels.
	ATD0_CH = (ch & 0x07);
	
	c|=ATD0_CH;//Max ch value is 7;

	_ATD0CTL5.Byte=c;//Start a new ATD convertion by write to _ATD0CTL5
}

void StopATD(void)
{
	_ATD0CTL2.Bits.ADPU=0;
}

void readADResultB(void)
{
	byte	r;
	r=ATD0_CH;
	ATD0_RxBuf[r]=ATD0DR0L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR1L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR2L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR3L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR4L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR5L;
	r++;
	if(r>=ATD0_SLEN)return;
	
	ATD0_RxBuf[r]=ATD0DR6L;
	r++;
	if(r>=ATD0_SLEN)return;
	ATD0_RxBuf[r]=ATD0DR7L;
	return ;
}

⌨️ 快捷键说明

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