src/dmx.c
changeset 101 18c461237630
parent 98 e743c905cbf5
equal deleted inserted replaced
100:d4ff49d86531 101:18c461237630
    37     dmx_low();
    37     dmx_low();
    38     dmx_pause(22);
    38     dmx_pause(22);
    39 
    39 
    40     // mark-after-break (MAB)
    40     // mark-after-break (MAB)
    41     dmx_high();
    41     dmx_high();
    42     dmx_pause(2);
    42     dmx_pause(3); // min 2, recommended 3
    43 }
    43 }
    44 
    44 
    45 #include "dmx_frame.c"
    45 #include "dmx_frame.c"
    46 
    46 
       
    47 /*
       
    48  * Send out a full DMX packet, including the start-code frame and a frame for each channel given.
       
    49  *
       
    50  * Uses 3-bit mark-times between frames, since some fixtures don't seem happy with 2-bit mark-times.
       
    51  */
    47 static void dmx_packet (byte count, byte *out)
    52 static void dmx_packet (byte count, byte *out)
    48 {
    53 {
    49     dmx_break();
    54     dmx_break();
    50     dmx_frame(0);
    55     dmx_frame(0);
       
    56     dmx_pause(1); // MTBF 2+1 = 3
    51 
    57 
    52     for (byte i = 0; i < count; i++) {
    58     for (byte i = 0; i < count; i++) {
    53         dmx_frame(out[i]);
    59         dmx_frame(out[i]);
       
    60 
       
    61         // MTBF 2+1 = 3
       
    62         dmx_pause(1);
    54     }
    63     }
    55 }
    64 }