case FAST:
{
// fast
Pixel Output Mode
// 1 value of 16 bit per pixel
// 4 pixel per
set_pixel
//-------------------------------------------------------
// |
pixel2
|
// |
16 Bit
|
// |
PortOutValue1
//-------------------------------------------------------
HalfPeriod
= (UINT)round(1.0 * 32.0);
PulseLength = (UINT)round(0.5 * 64.0);
set_laser_pulses(HalfPeriod, PulseLength);
jump_abs(PixelLineStartPosX, PixelLineStartPosY);
set_pixel_line(Channel, HalfPeriod, dx, dy);
// low 16 bit - first pixel, high 16 bit - second pixel
PortOutValue1 = PixelArray[1] | (PixelArray[2] << 16);
PortOutValue2 = PixelArray[3] | (PixelArray[4] << 16);
set_n_pixel(PortOutValue1, PortOutValue2, Number);
PortOutValue1 = PixelArray[5] | (PixelArray[6] << 16);
PortOutValue2 = PixelArray[7] | (PixelArray[8] << 16);
set_n_pixel(PortOutValue1, PortOutValue2, Number * 2);
//--> pixel output: pixel 5, pixel 6, pixel 7, pixel 8, pixel 5, pixel 6, pixel 7, pixel 8
}
break;
case ULTRAFAST:
{
// ultra fast
Pixel Output Mode
// 1 value of 8 bit per pixel
// 8 pixel per
set_pixel
//----------------------------------------------------------------------------------------------------------
//|
pixel4
|
pixel3
//|
8 Bit
|
//|
PortOutValue1
//----------------------------------------------------------------------------------------------------------
HalfPeriod
= (UINT)round(0.5
PulseLength = (UINT)round(0.25 * 64.0);
set_laser_pulses(HalfPeriod, PulseLength);
jump_abs(PixelLineStartPosX, PixelLineStartPosY);
set_pixel_line(Channel, HalfPeriod, dx, dy);
// lowest 8 bit - first pixel, highest 8 bit - fourth
PortOutValue1 = PixelArray[1] | (PixelArray[2] << 8) | (PixelArray[3] << 16) | (PixelArray[4] << 24);
PortOutValue2 = PixelArray[5] | (PixelArray[6] << 8) | (PixelArray[7] << 16) | (PixelArray[8] << 24);
// pixel 4 + pixel 3 + pixel 2 + pixel 1, pixel 8 + pixel 7 + pixel 6 + pixel 5
set_n_pixel(PortOutValue1, PortOutValue2, Number);
PortOutValue1 = PixelArray[ 9] | (PixelArray[10] << 8) | (PixelArray[11] << 16) | (PixelArray[12] << 24);
PortOutValue2 = PixelArray[13] | (PixelArray[14] << 8) | (PixelArray[15] << 16) | (PixelArray[16] << 24);
// (pixel 12 + pixel 11 + pixel 10 + pixel 9, pixel 16 + pixel 15 + pixel 14 + pixel 13)*2
set_n_pixel(PortOutValue1, PortOutValue2, Number * 2);
// --> pixel output: pixel 9, pixel 10, pixel 11, pixel 12, pixel 13, pixel 14, pixel 15, pixel 16,
//
pixel 9, pixel 10, pixel 11, pixel 12, pixel 13, pixel 14, pixel 15, pixel 16
}
break;
default:
break;
}
set_end_of_list();
RTC6 boards
Doc. Rev. 1.0.21 en-US
8 Advanced Functions for Scan Head Control and Laser Control
up to 1.6 MHz (Mode = 32) - needs UFPM-Option
command
pixel1
||
pixel4
|
16 Bit
||
16 Bit
|
||
PortOutValue2
// Period = 1 µs, PixelFrequency = 1 MHz
// PulseLength = 0.5 µs
up to 3.2 MHz (Mode = 64) - needs UFPM-Option
command
|
pixel2
|
8 Bit
|
8 Bit
|
* 32.0);
// Period = 0.5 µs, PixelFrequency = 2 MHz
// PulseLength = 0.25 µs
pixel3
|
16 Bit
|
|
// pixel 2 + pixel 1, pixel 4 + pixel 3
// (pixel 6 + pixel 5, pixel 8 + pixel 7)*2
pixel1
||
pixel8
|
8 Bit
||
8 Bit
||
PortOutValue2
pixel
pixel7
|
pixel6
|
8 Bit
|
8 Bit
|
pixel5
|
|
8 Bit
|
272
Need help?
Do you have a question about the RTC6 PCIe Board and is the answer not in the manual?
Questions and answers