From 6274829f3e16f83a60d9cee2cfb5c3e7c7787c8d Mon Sep 17 00:00:00 2001 From: DreamSourceLab Date: Thu, 21 May 2015 11:13:50 +0800 Subject: [PATCH] Upgrade advanced trigger counter to be 32bit @ LA mode --- DSView/pv/dock/triggerdock.cpp | 4 ++-- libsigrok4DSL/hardware/DSL/dscope.c | 4 ++-- libsigrok4DSL/hardware/DSL/dsl.h | 4 ++-- libsigrok4DSL/hardware/DSL/dslogic.c | 4 ++-- libsigrok4DSL/libsigrok.h | 4 ++-- libsigrok4DSL/proto.h | 2 +- libsigrok4DSL/trigger.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/DSView/pv/dock/triggerdock.cpp b/DSView/pv/dock/triggerdock.cpp index 7626b1d9..3f1a91f0 100644 --- a/DSView/pv/dock/triggerdock.cpp +++ b/DSView/pv/dock/triggerdock.cpp @@ -89,7 +89,7 @@ TriggerDock::TriggerDock(QWidget *parent, SigSession &session) : _value0_lineEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); _value0_lineEdit_list.push_back(_value0_lineEdit); QSpinBox *_count0_spinBox = new QSpinBox(this); - _count0_spinBox->setRange(1, 1 << TriggerCountBits); + _count0_spinBox->setRange(1, INT32_MAX); _count0_spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons); _count0_spinBox_list.push_back(_count0_spinBox); QComboBox *_inv0_comboBox = new QComboBox(this); @@ -105,7 +105,7 @@ TriggerDock::TriggerDock(QWidget *parent, SigSession &session) : _value1_lineEdit->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); _value1_lineEdit_list.push_back(_value1_lineEdit); QSpinBox *_count1_spinBox = new QSpinBox(this); - _count1_spinBox->setRange(1, 1 << TriggerCountBits); + _count1_spinBox->setRange(1, INT32_MAX); _count1_spinBox->setButtonSymbols(QAbstractSpinBox::NoButtons); _count1_spinBox_list.push_back(_count1_spinBox); QComboBox *_inv1_comboBox = new QComboBox(this); diff --git a/libsigrok4DSL/hardware/DSL/dscope.c b/libsigrok4DSL/hardware/DSL/dscope.c index f77ca19b..c3a22d3a 100644 --- a/libsigrok4DSL/hardware/DSL/dscope.c +++ b/libsigrok4DSL/hardware/DSL/dscope.c @@ -221,8 +221,8 @@ static int fpga_setting(const struct sr_dev_inst *sdi) setting.trig_edge1_header = 0x1910ffff; //setting.trig_edge2_header = 0x1a10ffff; //setting.trig_edge3_header = 0x1b10ffff; - setting.trig_count0_header = 0x1c10ffff; - setting.trig_count1_header = 0x1d10ffff; + setting.trig_count0_header = 0x1c20ffff; + setting.trig_count1_header = 0x1d20ffff; //setting.trig_count2_header = 0x1e10ffff; //setting.trig_count3_header = 0x1f10ffff; setting.trig_logic0_header = 0x2010ffff; diff --git a/libsigrok4DSL/hardware/DSL/dsl.h b/libsigrok4DSL/hardware/DSL/dsl.h index 33907ace..8b6203f0 100644 --- a/libsigrok4DSL/hardware/DSL/dsl.h +++ b/libsigrok4DSL/hardware/DSL/dsl.h @@ -229,9 +229,9 @@ struct DSL_setting { //uint32_t trig_edge3_header; // 27 //uint16_t trig_edge3[NUM_TRIGGER_STAGES]; uint32_t trig_count0_header; // 28 - uint16_t trig_count0[NUM_TRIGGER_STAGES]; + uint32_t trig_count0[NUM_TRIGGER_STAGES]; uint32_t trig_count1_header; // 29 - uint16_t trig_count1[NUM_TRIGGER_STAGES]; + uint32_t trig_count1[NUM_TRIGGER_STAGES]; //uint32_t trig_count2_header; // 30 //uint16_t trig_count2[NUM_TRIGGER_STAGES]; //uint32_t trig_count3_header; // 31 diff --git a/libsigrok4DSL/hardware/DSL/dslogic.c b/libsigrok4DSL/hardware/DSL/dslogic.c index 16bf94b6..ded0c501 100644 --- a/libsigrok4DSL/hardware/DSL/dslogic.c +++ b/libsigrok4DSL/hardware/DSL/dslogic.c @@ -257,8 +257,8 @@ static int fpga_setting(const struct sr_dev_inst *sdi) setting.trig_edge1_header = 0x1910ffff; //setting.trig_edge2_header = 0x1a10ffff; //setting.trig_edge3_header = 0x1b10ffff; - setting.trig_count0_header = 0x1c10ffff; - setting.trig_count1_header = 0x1d10ffff; + setting.trig_count0_header = 0x1c20ffff; + setting.trig_count1_header = 0x1d20ffff; //setting.trig_count2_header = 0x1e10ffff; //setting.trig_count3_header = 0x1f10ffff; setting.trig_logic0_header = 0x2010ffff; diff --git a/libsigrok4DSL/libsigrok.h b/libsigrok4DSL/libsigrok.h index dac954c2..f3b60b6e 100644 --- a/libsigrok4DSL/libsigrok.h +++ b/libsigrok4DSL/libsigrok.h @@ -1044,8 +1044,8 @@ struct ds_trigger { unsigned char trigger1_inv[TriggerStages+1]; char trigger0[TriggerStages+1][TriggerProbes]; char trigger1[TriggerStages+1][TriggerProbes]; - uint16_t trigger0_count[TriggerStages+1]; - uint16_t trigger1_count[TriggerStages+1]; + uint32_t trigger0_count[TriggerStages+1]; + uint32_t trigger1_count[TriggerStages+1]; }; struct ds_trigger_pos { diff --git a/libsigrok4DSL/proto.h b/libsigrok4DSL/proto.h index 55cf38ed..df2d1b3f 100644 --- a/libsigrok4DSL/proto.h +++ b/libsigrok4DSL/proto.h @@ -174,7 +174,7 @@ SR_API int ds_trigger_destroy(void); SR_API int ds_trigger_stage_set_value(uint16_t stage, uint16_t probes, char *trigger0, char *trigger1); SR_API int ds_trigger_stage_set_logic(uint16_t stage, uint16_t probes, unsigned char trigger_logic); SR_API int ds_trigger_stage_set_inv(uint16_t stage, uint16_t probes, unsigned char trigger0_inv, unsigned char trigger1_inv); -SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint16_t trigger0_count, uint16_t trigger1_count); +SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint32_t trigger0_count, uint32_t trigger1_count); SR_API int ds_trigger_probe_set(uint16_t probe, unsigned char trigger0, unsigned char trigger1); SR_API int ds_trigger_set_stage(uint16_t stages); SR_API int ds_trigger_set_pos(uint16_t position); diff --git a/libsigrok4DSL/trigger.c b/libsigrok4DSL/trigger.c index 618de2eb..393b0e66 100644 --- a/libsigrok4DSL/trigger.c +++ b/libsigrok4DSL/trigger.c @@ -117,7 +117,7 @@ SR_API int ds_trigger_stage_set_inv(uint16_t stage, uint16_t probes, unsigned ch return SR_OK; } -SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint16_t trigger0_count, uint16_t trigger1_count) +SR_API int ds_trigger_stage_set_count(uint16_t stage, uint16_t probes, uint32_t trigger0_count, uint32_t trigger1_count) { assert(stage < TriggerStages); assert(probes <= TriggerProbes);