In answer to part 2:
I think you need:
For initialisation of the hardware:
Init_DA_Brds();
AI_Configure();
To initialise the double-buffered acquisition:
Timeout_Config();
DAQ_DB_Config(); // to turn db mode on
SCAN_Setup(); // to set up which channels to read from, and the appropriate gain values to use for each
To start the double-buffered acquisition:
SCAN_Start();
To test to see if a half buffer is ready for transfer:
DAQ_DB_HalfReady(); // you need to call this often enough to catch when the buffer is half full, and before it gets overwritten
To transfer the half buffer of data:
DAQ_DB_Transfer();
When you've finished getting data, and before you try to start DB transfer again:
DAQ_Clear ();
DAQ_DB_Config(); // to turn DB off
I
think that the key to part 1 of your question is the call to SCAN_Setup() and it is here that you set parameters for scan frequency etc. Refer to the documentation to find out what the various parameters do - if you find it confusing - I may be able to clarify it some more - but it confuses me too.
I'm surprised at the 100% CPU usage as most of the stuff is going on in hardware. The bigger you make your buffer for DB operation, the more time your processor has for other tasks, but you then have to access the data less frequently. Perhaps the examples didn't use DAQ_DB_HalfReady(); ?
Hope this helps