dtmf_shift

decodes ouput of a dmtf converter chip MT8870 connected to four gpio input pins.
Author: Crococode
License: BSD
Github: hug/gpio/dtmf_shift.axo

Inlets

frac32 in1

frac32 i2

frac32 i3

frac32 i4

int32 is

Outlets

bool32 outt

frac32 out

Declaration
const int32_t thr = (43 << 20);
int32_t out;
int32_t pout;
Init
out = 0;
pout = 0;
Control Rate
if (inlet_i4 < thr) {
  if (inlet_i3 < thr) {
    if (inlet_i2 < thr && inlet_i1 > thr) {
      out = ((36 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 < thr) {
      out = ((37 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 > thr) {
      out = ((38 - inlet_is) << 20);
    }
  } else {
    if (inlet_i2 < thr && inlet_i1 < thr) {
      out = ((39 - inlet_is) << 20);
    }
    if (inlet_i2 < thr && inlet_i1 > thr) {
      out = ((40 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 < thr) {
      out = ((41 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 > thr) {
      out = ((42 - inlet_is) << 20);
    }
  }
} else {
  if (inlet_i3 < thr) {
    if (inlet_i2 < thr && inlet_i1 < thr) {
      out = ((43 - inlet_is) << 20);
    }
    if (inlet_i2 < thr && inlet_i1 > thr) {
      out = ((44 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 < thr) {
      out = ((45 - inlet_is) << 20);
    }
    if (inlet_i2 > thr && inlet_i1 > thr) {
      out = ((46 - inlet_is) << 20);
    }
  } else {
    if (inlet_i2 < thr && inlet_i1 < thr) {
      out = ((47 - inlet_is) << 20);
    }
  }
}
outlet_out = out;
if (out != pout) {
  outlet_outt = 1;
  pout = out;
} else {
  outlet_outt = 0;
}

Privacy

© 2024 Zrna Research