Arduino WS2812 control

i think you still need to assign the proper values to these to variables

  port    = portOutputRegister(digitalPinToPort(p));
  pinMask = digitalPinToBitMask(p);

because they are being referenced in show()
would that be

    if(begun){
      DDRE |= (1 << PE2);
      PORTE |= ~(1 << PE2);
    }
    port    = PORTE;
    pinMask = (1 << PE2); // ?? this one in particular i am not sure.
    return;