user_define_bulk
Description
Chirping with bulk memory.
Syntax
void user_define_bulk(UInt32* bulkMemory, UInt32* controlMemory, UInt32 numOfPoints)
Arguments
| bulkMemory | Bulk memory that will be used for chirping |
| controlMemory | Control bit words for each frequency |
| numOfPoints | Number of frequencies to be chirped |
Return Value
None
Example
int i;
unsigned *u = new unsigned[16];
unsigned *c = new unsigned[16];
const unsigned FC_START = 0x800000;
const unsigned FC_STEP = 0x1000000;
for( i=1, u[0]=FC_START; i<16; i++ )
{
if ( (i-1) < 4 )
{
c[i-1] = 3;
u[i-1] = 0;
continue;
}
u[i]=u[i-1]+FC_STEP;
}
dsm.user_define_bulk( u, c, 16 );
delete u;
delete c;
Control Bit Words
The control bit words are basically two control bits that represent phase reset and marker. Bit 0 (LSB) controls whether the marker is high or low while bit 1 (second LSB) controls the phase reset. For the phase reset bit, "0" turns phase reset off while "1" turns phase reset is on. For the marker bit, "0" turns marker low while "1" turns marker high. Here is a table showing the possible combinations of the control bit:
| Dec / Hex | Binary | Phase Reset | Marker |
| 0 / 0x0 | 00 | Off | Low |
| 1 / 0x1 | 01 | Off | High |
| 2 / 0x2 | 10 | On | Low |
| 3 / 0x3 | 11 | On | High |
Notes
This method will essentially chirp the frequency words that are stored in an array. Note that there are two versions of this method. The method with two arguments will chirp with the frequency words in the bulk memory array. The overloaded method with three arguments does the same but you also have the option of setting the markers as well as reseting the phase on a point-by-point basis. This gives you more control than setting the maker properties (marker1 and marker2) and the reset time properties (RESET_T1, RESET_T2, and RESET_T3) that only allow you to have a range of points.
For example if you used the user_define_bulk method with two arguments and you wanted a chirp with 10,000 points then you can only set marker high for one range, say points 2000 through 3000. But if you use the overloaded method with three arguements, then you have the option of setting marker high for points 2000 through 3000 and then points 7446 through 8564. The same goes with the phase reset option.
If you decide to use user_define_bulk with three arguments, the default setting if you do not specify a control bit word in the control array is marker low and phase reset off or "0".
If you are using the user_define_bulk method with two arguments then you must set the marker1 and marker2 properties. If you are using the overloaded user_define_bulk method with three arguments, the marker1 and marker2 properties will be ignored and you must specify markers using the control array.
If you are using the user_define_bulk method with two arguments then you must set the RESET_T1, RESET_T2, and RESET_T3 properties. If you are using the overloaded user_define_bulk method with three arguments, the RESET_T1, RESET_T2, and RESET_T3 properties will be ignored and you must specify phase reset using the control array. It is recommended that when you set phase reset using the control bit words that you also set the corresponding frequency word to "0". For example if reset is turned on for points 100 through 199, the corresponding frequency words for those 100 points should be "0".
When you call the user_define_bulk method, the program will automatically download the data to the DSM. There is no need use the download method.