#define SCF_EDA_V_MIN -10000000.0
#define SCF_EDA_V_MAX 10000000.0
+#define SCF_EDA_V_Diode_ON 0.69
+#define SCF_EDA_V_Diode_OFF 0.70
+
enum {
SCF_EDA_Battery_NEG,
SCF_EDA_Battery_POS,
p0->v = el->v;
if (SCF_EDA_Diode_NEG == p0->id)
- p1->v = p0->v + 0.7;
+ p1->v = p0->v + SCF_EDA_V_Diode_ON;
else
- p1->v = p0->v - 0.7;
+ p1->v = p0->v - SCF_EDA_V_Diode_ON;
if (p1->v > B->v || p1->v < 0)
c->status = SCF_EDA_Status_OFF;
if (SCF_EDA_PIN_IN & el->flags) {
- el->v = (0x1) * B->v;
+ el->v = (rand() & 0x1) * B->v;
el->vconst = 1;
scf_logw("IN el: %ld, V: %lg\n", el->id, el->v);
continue;
pe->v = le->v;
- pb->v = le->v + 0.7;
+ pb->v = le->v + SCF_EDA_V_Diode_ON;
lb->v = pb->v;
if (le->v == Bn->v)
} else if (le->v < SCF_EDA_V_MIN) {
pb->v = lb->v;
- pe->v = lb->v - 0.7;
+ pe->v = lb->v - SCF_EDA_V_Diode_ON;
le->v = pe->v;
if (lb->v == Bp->v)
c->status = SCF_EDA_Status_ON;
- } else if (lb->v >= le->v + 0.7) {
+ } else if (lb->v >= le->v + SCF_EDA_V_Diode_OFF) {
if (le->v == Bn->v) {
if (lb->v == Bp->v) {
} else if (lb->v == Bp->v)
le->vconst = 1;
- lb->v = le->v + 0.7;
+ lb->v = le->v + SCF_EDA_V_Diode_ON;
pb->v = lb->v;
pe->v = le->v;