1.GPIO简介
以BU系列为例,GPIO的内部结构如下图所示。
闪光控制使用输出引脚 (BU系列为Line1) 或输入输出引脚 (BU系列为Line2) 。使用输入输出引脚时,需要将LineModeAll相应的位置切换到输出模式。
// 将Line2切换到输出时
SetCamLineMode(s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_MODE_OUTPUT );
2.GPIO的极性
输入极性取决于连接的闪光灯。
B/D/E系列的出厂设置的GPIO输出为负极性。使用正极性输入的闪光灯时,请使用LineInverterAll存储器将相机极性反转。
闪光灯连接示例如下图所示。
// 将Line2输出信号反转为正极性
SetCamLineInverter(s_hCam, CAM_LINE_SELECTOR_LINE2, true );
3.闪光灯信号输出的设置方法
3.1.使用ExposureActive时
是标准连接方法,在相机曝光时间内使闪光灯闪光。
触发模式Off、TriggerSequence1 (Level模式) 以及TriggerSequence6 (Bulk模式) 时,请使用这个方法。
// 将Line2的输出信号切换到ExposureActive
SetCamLineSource (s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_SOURCE_EXPOSURE_ACTIVE);
3.2.使用Timer0Active时
曝光时间短,会有闪光灯闪亮/熄灭延迟的问题。这时,仅在闪光灯亮度稳定部分的曝光是有效的。
B/D/E系列配备有名为TimerControl脉冲发生器。使用脉冲发生器,可以根据需要设置闪光灯闪光和相机曝光。
该使用方法只可用于TriggerSequence0 (Edge模式) 。
※该功能无法在BG系列 (CCD模式)和BG205M-CS使用
// 闪光灯点亮700 us,在中心曝光500 us时的采样
// 指定触发器接收Timer0Active信号的基准信号
SetCamTimerTriggerSource(s_hCam, CAM_TIMER_TRIGGER_SOURCE_FRAME_TRIGGER );
// 设置Timer0Active信号的延迟(设置为无延迟)
SetCamTimerDelay( s_hCam, 0 );
// 设置Timer0Active信号幅度为700us
SetCamTimerDuration( s_hCam, 700 );
// 将Line2的输出信号切换至Timer0Active
SetCamLineSource (s_hCam, CAM_LINE_SELECTOR_LINE2, CAM_LINE_SOURCE_TIMER0_ACTIIVE );
// 将从触发器检测到信号起至曝光开始为止的延迟设置为100us
SetCamTriggerDelay( s_hCam,100 );
// 曝光时间设置为500us
SetCamExposureTime( s_hCam, 500 );