diff options
| author | 2019-03-09 00:34:40 +0100 | |
|---|---|---|
| committer | 2019-03-09 00:34:40 +0100 | |
| commit | 1a2af1a23e4e28e551ce85dbc984cb5aae99bfa2 (patch) | |
| tree | 7087185efed5753039841d1f017f8895755ea580 /src/lib | |
| parent | b346dea27951dc08b6ac349ce3c1f5555366128e (diff) | |
netlist: add reverse parameter to 3-pin-potentiometer. (nw)
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/netlist/analog/nlid_twoterm.cpp | 3 | ||||
| -rw-r--r-- | src/lib/netlist/analog/nlid_twoterm.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/netlist/analog/nlid_twoterm.cpp b/src/lib/netlist/analog/nlid_twoterm.cpp index d5578ccd5bb..f945100c652 100644 --- a/src/lib/netlist/analog/nlid_twoterm.cpp +++ b/src/lib/netlist/analog/nlid_twoterm.cpp @@ -156,7 +156,8 @@ NETLIB_UPDATE_PARAM(POT) nl_double v = m_Dial(); if (m_DialIsLog()) v = (std::exp(v) - 1.0) / (std::exp(1.0) - 1.0); - + if (m_Reverse()) + v = 1.0 - v; m_R1.set_R(std::max(m_R() * v, exec().gmin())); m_R2.set_R(std::max(m_R() * (plib::constants<nl_double>::one() - v), exec().gmin())); diff --git a/src/lib/netlist/analog/nlid_twoterm.h b/src/lib/netlist/analog/nlid_twoterm.h index 06a4bc6e1d7..08c7235caf1 100644 --- a/src/lib/netlist/analog/nlid_twoterm.h +++ b/src/lib/netlist/analog/nlid_twoterm.h @@ -166,6 +166,7 @@ NETLIB_OBJECT(POT) , m_R(*this, "R", 10000) , m_Dial(*this, "DIAL", 0.5) , m_DialIsLog(*this, "DIALLOG", false) + , m_Reverse(*this, "REVERSE", false) { register_subalias("1", m_R1.m_P); register_subalias("2", m_R1.m_N); @@ -186,6 +187,7 @@ private: param_double_t m_R; param_double_t m_Dial; param_logic_t m_DialIsLog; + param_logic_t m_Reverse; }; NETLIB_OBJECT(POT2) |
