📄 adc_sample.c
字号:
//测试功能:用事件管理器B的定时器4定时时间到来触发A/D采样的启动。采样时采用级连模式,一次做16个转换,转换通道分别是0~15。
// 转换完成后,在A/D中断服务子程序中将转换结果读出。该程序只作一次A/D采样。
#include "ioreg.h"
int ADRESULT[16];
volatile unsigned int *j;
int i=0x00,cesi;
void inline disable()
{
asm(" setc INTM");
}
void inline enable()
{
asm(" clrc INTM");
}
int initial()
{
asm(" setc SXM");
asm(" clrc OVM");
asm(" clrc CNF");
SCSR1 = 0x81fe;
WDCR = 0x0e8;
IMR = 0x0001;
IFR = 0x0ffff;
}
void ADINIT()
{
T4CNT=0x0000;
T4CON=0x170c;
T4PR=0x75;
GPTCONB=0x400;
EVBIFRB=0x0ffff;
ADCTRL1=0x10;
ADCTRL2=0x8404;
MAXCONV=0x0f;
CHSELSEQ1=0x3210;
CHSELSEQ2=0x7654;
CHSELSEQ3=0xba98;
CHSELSEQ4=0xfedc;
}
void ADSOC()
{
T4CON=T4CON|0x40;
}
void interrupt nothing()
{
return;
}
void interrupt adint()
{
asm(" clrc SXM");
j=RESULT0;
for(i=0;i<=15;i++,j++)
{
ADRESULT[i]=*j>>6;
cesi=ADRESULT[i];
}
ADCTRL2=ADCTRL2|0x4200;
enable();
}
main()
{
disable();
initial();
ADINIT();
enable();
ADSOC();
while(1)
{
if(i==0x10) break;
}
T4CON=T4CON&0x0ffbf;
while(1)
{
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -