mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-18 01:14:42 -04:00
Fixes an error in the new counter that occurred when the counter value
was changed by the measured value dialog.
This commit is contained in:
parent
3e839a54ec
commit
b86462e2ea
@ -99,14 +99,17 @@ public class CounterPreset extends Node implements Element {
|
|||||||
counter = in.getValue();
|
counter = in.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dir)
|
ovfOut = getOvfValue(counter, dir, enable);
|
||||||
ovfOut = (counter == 0) && enable;
|
|
||||||
else
|
|
||||||
ovfOut = (counter == maxValue) && enable;
|
|
||||||
|
|
||||||
lastClock = clock;
|
lastClock = clock;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean getOvfValue(long counter, boolean dir, boolean enable) {
|
||||||
|
if (dir)
|
||||||
|
return (counter == 0) && enable;
|
||||||
|
else
|
||||||
|
return (counter == maxValue) && enable;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeOutputs() throws NodeException {
|
public void writeOutputs() throws NodeException {
|
||||||
ovf.setBool(ovfOut);
|
ovf.setBool(ovfOut);
|
||||||
@ -135,7 +138,7 @@ public class CounterPreset extends Node implements Element {
|
|||||||
if (probe)
|
if (probe)
|
||||||
model.addSignal(new Signal(label, out, (v, z) -> {
|
model.addSignal(new Signal(label, out, (v, z) -> {
|
||||||
counter = v;
|
counter = v;
|
||||||
boolean o = (counter == maxValue) && enable.getBool();
|
boolean o = getOvfValue(counter, dir.getBool(), enable.getBool());
|
||||||
out.setValue(counter);
|
out.setValue(counter);
|
||||||
ovf.setBool(o);
|
ovf.setBool(o);
|
||||||
}));
|
}));
|
||||||
|
@ -528,7 +528,7 @@
|
|||||||
<string name="elem_Counter_pin_en">Der Zähler zählt nur, wenn dieser Eingang auf 1 gesetzt ist.</string>
|
<string name="elem_Counter_pin_en">Der Zähler zählt nur, wenn dieser Eingang auf 1 gesetzt ist.</string>
|
||||||
|
|
||||||
<string name="elem_CounterPreset">Zähler, beschreibbar</string>
|
<string name="elem_CounterPreset">Zähler, beschreibbar</string>
|
||||||
<string name="elem_CounterPreset_tt">Zähler, dessen Wert gesetzt werden kann.</string>
|
<string name="elem_CounterPreset_tt">Zähler, dessen Wert gesetzt werden kann. Zudem kann ein Maximalwert und eine Zählrichtung vorgegeben werden.</string>
|
||||||
<string name="elem_CounterPreset_short">Zähler</string>
|
<string name="elem_CounterPreset_short">Zähler</string>
|
||||||
<string name="elem_CounterPreset_pin_out">Gibt den gezählten Wert aus.</string>
|
<string name="elem_CounterPreset_pin_out">Gibt den gezählten Wert aus.</string>
|
||||||
<string name="elem_CounterPreset_pin_ovf">Overflow Ausgang. Wird auf 1 gesetzt, der 'en' Eingang auf 1 gesetzt ist
|
<string name="elem_CounterPreset_pin_ovf">Overflow Ausgang. Wird auf 1 gesetzt, der 'en' Eingang auf 1 gesetzt ist
|
||||||
|
@ -531,7 +531,7 @@
|
|||||||
<string name="elem_Counter_pin_en">If set to 1 the counter is enabled!</string>
|
<string name="elem_Counter_pin_en">If set to 1 the counter is enabled!</string>
|
||||||
|
|
||||||
<string name="elem_CounterPreset">Counter with preset</string>
|
<string name="elem_CounterPreset">Counter with preset</string>
|
||||||
<string name="elem_CounterPreset_tt">Counter with preset.</string>
|
<string name="elem_CounterPreset_tt">A counter whose value can be set. In addition, a maximum value and a counting direction can be specified.</string>
|
||||||
<string name="elem_CounterPreset_short">Counter</string>
|
<string name="elem_CounterPreset_short">Counter</string>
|
||||||
<string name="elem_CounterPreset_pin_out">Returns the counted value.</string>
|
<string name="elem_CounterPreset_pin_out">Returns the counted value.</string>
|
||||||
<string name="elem_CounterPreset_pin_ovf">Overflow output. It is set to 1 if the 'en' input is set to 1 and if the
|
<string name="elem_CounterPreset_pin_ovf">Overflow output. It is set to 1 if the 'en' input is set to 1 and if the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user