[size=3][color=#000000]IntervalTimer t1[/color][color=#000000],[/color] [color=#000000]t2[/color][color=#000000];[/color]
[color=#000000][/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]uint8_t[/color] [color=#000000]pins[/color][color=#000000][[/color][color=#000000][/color][color=#a52a2a]4[/color][color=#000000][/color][color=#000000]] = {[/color][color=#000000][/color][color=#a52a2a]0[/color][color=#000000][/color][color=#000000],[/color] [color=#000000][/color][color=#a52a2a]1[/color][color=#000000][/color][color=#000000],[/color] [color=#000000][/color][color=#a52a2a]2[/color][color=#000000][/color][color=#000000],[/color] [color=#000000][/color][color=#a52a2a]3[/color][color=#000000][/color][color=#000000]};[/color]
[color=#000000][/color]
[color=#000000][/color][color=#0000ff]void[/color] [color=#000000][/color][color=#000000][b]switchOn[/b][/color][color=#000000][/color][color=#000000]()[/color]
[color=#000000][/color][color=#000000]{[/color]
[color=#000000][/color] [color=#0000ff]static unsigned[/color] [color=#000000]current[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]0[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color] [color=#000000][b]digitalWriteFast[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]pins[/color][color=#000000][[/color][color=#000000]current[/color][color=#000000]],[/color] [color=#000000]HIGH[/color][color=#000000]);[/color]
[color=#000000] current[/color] [color=#000000]= ([/color][color=#000000]current[/color] [color=#000000]+[/color] [color=#000000][/color][color=#a52a2a]1[/color][color=#000000][/color][color=#000000]) &[/color] [color=#000000][/color][color=#a52a2a]0b11[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color][color=#000000]}[/color]
[color=#000000][/color]
[color=#000000][/color][color=#0000ff]void[/color] [color=#000000][/color][color=#000000][b]switchOff[/b][/color][color=#000000][/color][color=#000000]()[/color]
[color=#000000][/color][color=#000000]{[/color]
[color=#000000][/color] [color=#0000ff]static unsigned[/color] [color=#000000]current[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]0[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color] [color=#000000][b]digitalWriteFast[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]pins[/color][color=#000000][[/color][color=#000000]current[/color][color=#000000]],[/color] [color=#000000]LOW[/color][color=#000000]);[/color]
[color=#000000] current[/color] [color=#000000]= ([/color][color=#000000]current[/color] [color=#000000]+[/color] [color=#000000][/color][color=#a52a2a]1[/color][color=#000000][/color][color=#000000]) &[/color] [color=#000000][/color][color=#a52a2a]0b11[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color][color=#000000]}[/color]
[color=#000000][/color]
[color=#000000][/color][color=#0b810d]// settings[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]float[/color] [color=#000000]f[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]50'000[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]float[/color] [color=#000000]duty[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]0.9[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]unsigned[/color] [color=#000000]period[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]0.25[/color] [color=#000000][/color][color=#000000]*[/color] [color=#000000][/color][color=#a52a2a]1[/color][color=#000000]E6[/color] [color=#000000]/[/color] [color=#000000]f[/color][color=#000000];[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]unsigned[/color] [color=#000000]highTime[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]4000.0[/color] [color=#000000][/color][color=#000000]*[/color] [color=#000000]duty[/color] [color=#000000]*[/color] [color=#000000]period[/color][color=#000000];[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]unsigned[/color] [color=#000000]lowTime[/color] [color=#000000]=[/color] [color=#000000][/color][color=#a52a2a]4000.0[/color] [color=#000000][/color][color=#000000]* ([/color][color=#000000][/color][color=#a52a2a]1[/color] [color=#000000][/color][color=#000000]-[/color] [color=#000000]duty[/color][color=#000000]) *[/color] [color=#000000]period[/color][color=#000000];[/color]
[color=#000000][/color][color=#001177]constexpr[/color] [color=#000000][/color][color=#0000ff]unsigned[/color] [color=#000000]brkTime[/color] [color=#000000]=[/color] [color=#000000]lowTime[/color] [color=#000000]/[/color] [color=#000000][/color][color=#a52a2a]2[/color][color=#000000][/color][color=#000000];[/color]
[color=#000000][/color]
[color=#000000][/color][color=#0000ff]void[/color] [color=#000000][/color][color=#000000][b]setup[/b][/color][color=#000000][/color][color=#000000]()[/color]
[color=#000000][/color][color=#000000]{[/color]
[color=#000000][/color] [color=#001177]for[/color] [color=#000000][/color][color=#000000]([/color][color=#000000][/color][color=#0000ff]uint8_t[/color] [color=#000000]pin[/color] [color=#000000]:[/color] [color=#000000]pins[/color][color=#000000])[/color] [color=#000000][/color][color=#000000][b]pinMode[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]pin[/color][color=#000000],[/color] [color=#000000]OUTPUT[/color][color=#000000]);[/color]
[color=#000000][/color] [color=#000000][b]delayNanoseconds[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]brkTime[/color][color=#000000]);[/color] [color=#000000][/color][color=#0b810d]// the only effect this has is that the sketch starts a few microseconds later[/color]
[color=#000000] t1[/color][color=#000000].[/color][color=#000000][/color][color=#000000][b]begin[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]switchOn[/color][color=#000000],[/color] [color=#000000]period[/color][color=#000000]);[/color]
[color=#000000][/color] [color=#000000][b]delayNanoseconds[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]highTime[/color][color=#000000]);[/color]
[color=#000000] t2[/color][color=#000000].[/color][color=#000000][/color][color=#000000][b]begin[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]switchOff[/color][color=#000000],[/color] [color=#000000]period[/color][color=#000000]);[/color]
[color=#000000][/color] [color=#000000][b]delayNanoseconds[/b][/color][color=#000000][/color][color=#000000]([/color][color=#000000]brkTime[/color][color=#000000]);[/color] [color=#000000][/color][color=#0b810d]// the only effect this has is, that loop starts a few microseconds later[/color]
[color=#000000][/color][color=#000000]}[/color]
[color=#000000][/color]
[color=#000000][/color][color=#0000ff]void[/color] [color=#000000][/color][color=#000000][b]loop[/b][/color][color=#000000][/color][color=#000000]()[/color]
[color=#000000][/color][color=#000000]{[/color]
[color=#000000][/color][color=#000000]}[/color][color=#000000][/color]
[/size]