If you are looking to implement this in code, then please follow this sequence from the PicoScope 3000 series programmer's guide (you need to set both Channel A and B, and set the data buffers) and refer to the PS3000con.c example in the Software Development Kit:
for (i = 0; i < unitOpened.noOfChannels; i++)
{
ps3000_set_channel ( unitOpened.handle, PS3000_CHANNEL_A + i,
unitOpened.channelSettings[PS3000_CHANNEL_A + i].enabled,
unitOpened.channelSettings[PS3000_CHANNEL_A + i].DCcoupled,
unitOpened.channelSettings[PS3000_CHANNEL_A + i].range);
}
Here the code sets up each channel - note that you must ensure that Channel A and B are enabled. Channel C and D only need to be enabled if you have a 4 channel Oscilloscope - this can be done via the channelSettings struct.
when i call ps3000_get_timebase(unitOpened.handle,timebase,no_of_samples,&time_interval,&time_units,oversample,&max_samples);
What values are you passing in for each variable? What is the output from the actual function? It's possible that this is causing the programme to stay in the loop as the unit will not be ready.