/* X301Demo.c: Demo program for X301 Compiler: BC++ 3.1 Turbo C ++ 1.01(3.01) (free from http://community.borland.com/museum) Compile mode: large Project: X301Demo.c ..\..\lib\7188xcl.lib ..\..\lib\XBoard\X301.lib Hardware: 7188XC + X301 X301: 1 channel 12-Bit A/D (Analog input) 0~2.5 V 1 channel 12-Bit D/A (Analog output) 0~4.095 V [Aug/28/2002] by Jason [May/19/2005] by Liam [08/July/2005] by Liam */ #include #include "..\..\LIB\7188xc.h" #include "..\..\LIB\XBoard\X301.h" void main(void) { int iAction, iChannel, iValue, quit; float fValue; InitLib(); X301_Init(); //Initialize the X301 Puts("\r\nDemo program for 7188XC + X301\r\n"); while(iAction!=4) { quit=0; iAction=0; Puts("\r\n"); Puts("1)Reads setting from EEPROM\r\n"); Puts("2)A/D (Analog input)\r\n"); Puts("3)D/A (Analog output)\r\n"); Puts("\r\n"); Puts("4)Quits demo program\r\n\r\n"); Puts("Please select (1~4):"); Scanf("%d", &iAction); Puts("\r\n"); switch(iAction) { /******************************************/ /* Reads settings from EEPROM(on X board) */ /******************************************/ case 1: iValue=X301_Init(); if((iValue&1)==0) Print("EEPROM A/D Gain ==> [%8.6f]\n\r", X301_fAD_Gain); else Print("No setting in EEPROM, A/D Gain ==> %8.6f\n\r", X301_fAD_Gain); if((iValue&2)==0) Print("EEPROM A/D Offset ==> [%8.6f]\n\r", X301_fAD_Offset); else Print("No setting in EEPROM, A/D Offset ==> %8.6f\n\r", X301_fAD_Offset); if((iValue&4)==0) Print("EEPROM D/A Gain ==> [%8.6f]\n\r", X301_fDA_Gain); else Print("No setting in EEPROM, D/A Gain ==> %8.6f\n\r", X301_fDA_Gain); if((iValue&8)==0) Print("EEPROM D/A Offset ==> [%8.6f]\n\r", X301_fDA_Offset); else Print("No setting in EEPROM, D/A Offset ==> %8.6f\n\r", X301_fDA_Offset); Puts("\r\n"); break; /**********************/ /* A/D (Analog input) */ /**********************/ case 2: fValue=X301_AnalogIn(); Print("AI[0]= %6.4fV\r\n\r\n", fValue); break; /***********************/ /* D/A (Analog output) */ /***********************/ case 3: Puts("Voltage (0~4.095): "); Scanf("%f", &fValue); X301_AnalogOut(fValue); Print("AO[0] %5.3fV OK.\r\n\r\n", fValue); break; case 4: default: quit=1; break; } if(!quit) { Puts("Press any key to continue...\r\n"); Getch(); } } }