?? ad.c
字號(hào):
#include"ICETEK-C6713-A.h"
#define AD_CTL *(unsigned char*)0x90100006
#define AD_DATA_BASE 0x90140000
#define ORDER 2
#define AD_CHA0 *(unsigned short int*)(AD_DATA_BASE+0*ORDER)
#define AD_CHC0 *(unsigned short int*)(AD_DATA_BASE+1*ORDER)
#define AD_CHB0 *(unsigned short int*)(AD_DATA_BASE+2*ORDER)
#define AD_CHA1 *(unsigned short int*)(AD_DATA_BASE+4*ORDER)
#define AD_CHC1 *(unsigned short int*)(AD_DATA_BASE+5*ORDER)
#define AD_CHB1 *(unsigned short int*)(AD_DATA_BASE+6*ORDER)
void interrupt Timer( void );
void initInterrupt(void);
unsigned short int a,b,c,d,e,f;
short int nChannelA0[256],nChannelA1[256];
short int nAD0[256],nAD1[256];
int nPointNumber;
main()
{
unsigned char dbScanCode;
nPointNumber=0;
init_emif(); // 初始化emif
InitCTR(); // 初始化ICETEK-CTR
initInterrupt();
while ( 1 )
{
}
}
void interrupt Timer( void )
{
int i;
short int nWork;
a= AD_CHA0 ;
b= AD_CHA1 ;
c= AD_CHB0 ;
d= AD_CHB1 ;
e= AD_CHC0 ;
f= AD_CHC1 ;
if ( (a&0x8000)&&(b&0x8000) ) // 數(shù)據(jù)有效性判斷
{
a<<=4; nWork=a; nWork/=16; // 去除高4位
nChannelA0[nPointNumber]=nWork;
b<<=4; nWork=b; nWork/=16; // 去除高4位
nChannelA1[nPointNumber]=nWork;
nPointNumber++;
if ( nPointNumber>=256 )
{
for ( i=0;i<256;i++ )
{
nAD0[i]=nChannelA0[i];
nAD1[i]=nChannelA1[i];
}
nPointNumber=0; // 軟中斷位置
}
}
AD_CTL = 0x0; // 發(fā)送控制脈沖信號(hào),進(jìn)行下次轉(zhuǎn)換 如果只需A0,A1通道只需送6即可
for (i=0;i<50;i++);
AD_CTL = 0x7; // 產(chǎn)生高電平
}
void initInterrupt(void)
{
// 設(shè)置中斷控制寄存器
CSR&=0xfffffffe; // 關(guān)中斷 GIE=0
ISTP=0x00000c00; // 重置中斷向量表到0C00h
IMH=0x08000000; // 指定Timer1產(chǎn)生int15中斷
IML=0;
ICR=0xff; // 清除等待的中斷
IER=0x8003; // 使能int15中斷
// 設(shè)置定時(shí)器產(chǎn)生中斷信號(hào)的頻率
TIMER1PRD=0x1000; // 定時(shí)器1的周期=0x1000
TIMER1CTL=0x3c0; // 開(kāi)始計(jì)數(shù)
CSR=CSR|1; // 開(kāi)中斷
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -