do 2 hugh
This commit is contained in:
11
main.cpp
11
main.cpp
@ -1153,6 +1153,7 @@ constexpr uint32_t kE502DiSyn2Mask =
|
||||
constexpr uint32_t kE502Digital1Mask = (static_cast<uint32_t>(1U) << 0U);
|
||||
constexpr uint32_t kE502Digital2Mask = (static_cast<uint32_t>(1U) << 1U);
|
||||
constexpr uint32_t kE502Do1Mask = (static_cast<uint32_t>(1U) << 0U);
|
||||
constexpr uint32_t kE502Do2Mask = (static_cast<uint32_t>(1U) << 1U);
|
||||
constexpr uint32_t kDo1TogglePeriodTicks = 2U;
|
||||
constexpr uint32_t kDo1CyclePatternWords = kDo1TogglePeriodTicks * 2U;
|
||||
constexpr uint32_t kStreamInputAdcFlag = 0x80000000U;
|
||||
@ -1777,6 +1778,7 @@ int run(const Config& cfg) {
|
||||
expect_ok(api, api.SetDigInPullup(device.hnd, pullups), "Set digital input pullups/pulldowns");
|
||||
|
||||
expect_ok(api, api.Configure(device.hnd, 0), "Configure device");
|
||||
expect_ok(api, api.AsyncOutDig(device.hnd, kE502Do2Mask, 0U), "Force DO2 HIGH");
|
||||
uint32_t enabled_streams = X502_STREAM_ADC | X502_STREAM_DIN;
|
||||
if (cfg.do1_toggle_per_frame) {
|
||||
enabled_streams |= X502_STREAM_DOUT;
|
||||
@ -1816,6 +1818,7 @@ int run(const Config& cfg) {
|
||||
<< " DO1 toggle per frame: "
|
||||
<< (cfg.do1_toggle_per_frame ? std::string("enabled (hardware cyclic 00110011..., toggle every 2 ADC ticks)")
|
||||
: std::string("disabled")) << "\n"
|
||||
<< " DO2 state: forced HIGH\n"
|
||||
<< " DOUT rate: "
|
||||
<< (cfg.do1_toggle_per_frame ? std::to_string(actual_dout_freq_hz) + " Hz" : std::string("disabled")) << "\n"
|
||||
<< " ADC range: +/-" << range_to_volts(cfg.range) << " V\n"
|
||||
@ -1926,7 +1929,7 @@ int run(const Config& cfg) {
|
||||
}
|
||||
|
||||
for (std::size_t i = 0; i < do1_cycle_pattern.size(); ++i) {
|
||||
do1_cycle_pattern[i] = (i < kDo1TogglePeriodTicks) ? 0U : kE502Do1Mask;
|
||||
do1_cycle_pattern[i] = ((i < kDo1TogglePeriodTicks) ? 0U : kE502Do1Mask) | kE502Do2Mask;
|
||||
}
|
||||
|
||||
expect_ok(api,
|
||||
@ -2794,7 +2797,11 @@ int run(const Config& cfg) {
|
||||
expect_ok(api, api.StreamsStop(device.hnd), "Stop streams");
|
||||
device.streams_started = false;
|
||||
if (cfg.do1_toggle_per_frame) {
|
||||
expect_ok(api, api.AsyncOutDig(device.hnd, 0U, ~kE502Do1Mask), "Force DO1 LOW after cyclic DOUT stop");
|
||||
expect_ok(api,
|
||||
api.AsyncOutDig(device.hnd, kE502Do2Mask, ~(kE502Do1Mask | kE502Do2Mask)),
|
||||
"Force DO1 LOW and keep DO2 HIGH after cyclic DOUT stop");
|
||||
} else {
|
||||
expect_ok(api, api.AsyncOutDig(device.hnd, kE502Do2Mask, ~kE502Do2Mask), "Keep DO2 HIGH after streams stop");
|
||||
}
|
||||
|
||||
if ((cfg.stats_period_ms != 0U) && ((stats_raw_words != 0U) || (stats_adc_samples != 0U) ||
|
||||
|
||||
Reference in New Issue
Block a user