📄 ad1.c
字号:
#include "SEED-DEC2407.h"
unsigned int k,j,Ad_data[16];
void kick_dog()
{
*WDKEY =0X5555;
*WDKEY=0XAAAA;
}
void SystemInit(void)
{
WSGR = 0;
*WDCR = 0x6f;
*SCSR1 = 0x0280; //2*fin,且使能ADC
}
void AdInit(void)
{
/* reset adc */
*ADCTRL1 = 0x4000;
*ADCTRL2 = 0x4000;
*MAXCONV = 0;
kick_dog();
/* run,seq casc operation */
*ADCTRL1 = 0x3F10;
*MAXCONV = 0x0f;
*CHSELSEQ1 = 0x3210;
*CHSELSEQ2 = 0x7654;
*CHSELSEQ3 = 0xBA98;
*CHSELSEQ4 = 0xFEDC;
kick_dog();
*ADCTRL2 = 0x2600; //?
}
interrupt void AD(void)
{
unsigned int k;
if((*PIVR & 0x04) == 0x04)
{
*PIACKR0 = *PIACKR0 | 0x04;//?
Ad_data[0] = *RESULT0;
Ad_data[1] = *RESULT1;
Ad_data[2] = *RESULT2;
Ad_data[3] = *RESULT3;
Ad_data[4] = *RESULT4;
Ad_data[5] = *RESULT5;
Ad_data[6] = *RESULT6;
Ad_data[7] = *RESULT7;
Ad_data[8] = *RESULT8;
Ad_data[9] = *RESULT9;
Ad_data[10] = *RESULT10;
Ad_data[11] = *RESULT11;
Ad_data[12] = *RESULT12;
Ad_data[13] = *RESULT13;
Ad_data[14] = *RESULT14;
Ad_data[15] = *RESULT15;
for(k=0;k<=15;k++)
{
Ad_data[k]=Ad_data[k]>>6; // 把AD转换的结果右移6位后存入规定的数组
//检验每个A/D转换的结果
}
*ADCTRL2 = *ADCTRL2| 0x2000;
}
*IFR = 0x01;
asm(" CLRC INTM ");
}
void PHANTOM()
{
}
void main()
{
unsigned int i;
i = 0;
j = 0;
//DINT;
asm(" SETC INTM ");
SystemInit();
*IFR = 0x3f;
*IMR = 0x0001;
AdInit();
asm(" CLRC INTM ");
//EINT;
for(;;)
{
asm(" RPT #5");
asm(" NOP");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -