#include #include #include #include"a821.h" int Buf[1200]; void main(void) { int i,j; long AdCount=0; float rate=5.0/2048.0; int DI,DO,AD,DA,count; if (NoError==A821_Initialize(0,0x220,-1,5)) { for (i=0;i<10;i++) /* A821 D/I/O */ { DO=i*10; A821_DO(DO); DI=A821_DI(); printf("\nOut=%2x -->In=%2x",DO,DI); } A821_OutputByte(0x22D,0x55); /* general-purpose D/I/O */ A821_OutputByte(0x22E,0x55); i=A821_InputByte(0x226); j=A821_InputByte(0x227); printf("\n0x55 DIO test --> %x %x",i,j); A821_OutputByte(0x22D,0xAA); A821_OutputByte(0x22E,0xAA); i=A821_InputByte(0x226); j=A821_InputByte(0x227); printf("\n0xAA DIO test --> %x %x",i,j); printf("\n----------------------------"); A821_DA(0,0xfff); /* A821 DA & AD */ A821_AD_SetChGainMode(0,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_0=0xFFF AD_0=0x%x=%6.3f",AD,rate*(AD-2048)); A821_DA(1,0xfff); A821_AD_SetChGainMode(1,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_1=0xFFF AD_1=0x%x=%6.3f",AD,rate*(AD-2048)); A821_DA(0,0x800); A821_AD_SetChGainMode(0,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_0=0x800 AD_0=0x%x=%6.3f",AD,rate*(AD-2048)); A821_DA(1,0x800); A821_AD_SetChGainMode(1,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_1=0x800 AD_1=0x%x=%6.3f",AD,rate*(AD-2048)); A821_DA(0,0); A821_AD_SetChGainMode(0,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_0=0x000 AD_0=0x%x=%6.3f",AD,rate*(AD-2048)); A821_DA(1,0); A821_AD_SetChGainMode(1,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ AD=A821_AD_PollingVar(); printf("\nDA_1=0x000 AD_1=0x%x=%6.3f",AD,rate*(AD-2048)); printf("\n----------------------------"); for (j=0; j<1000; j++) A821_Delay(1000*2); /* delay 1 seconds */ A821_AD_SetChGainMode(0,0,POLLING_MODE); A821_Delay(23*2); /* delay the settling time for PGH */ for (i=0;i<14;i++) /* DA_0 to AD_0 */ { DA=0xff*i; A821_DA(0,DA); AD=A821_AD_PollingVar(); for (j=0;j<1000; j++) A821_Delay(1000*1); printf("\nDA_0=0x%x AD_0=0x%x=%6.3f",DA,AD,rate*(AD-2048)); } printf("\n----------------------------"); for (i=0;i<1000;i++) Buf[i]=0; A821_AD_INT(0,0,1000,Buf,6,6); while (1) { count=A821_AD_INT_Count(); if(count>=1000) break; printf("\nCount=%u",count); } A821_AD_INT_Stop(); for (i=0;i<10;i++) printf("\nBuf[%d]=0X%x",i*99,Buf[i*99]); } else printf("Can't Find A821PGL/PGH in 0x220"); printf("\nDemo End"); }