Doing port / registers manipulation you will "loose" sometime questionable convenience of Arduino compiler, possibly get not so kindly remarks from some resident "gurus", but gain more intimate knowledge and control of your process.
Go for it.
Cheers
Vaclav
What sort of time frame is acceptable? Here's a little sketch you can use to see how long it takes to set three LEDs using both in-line and a for loop.
void setup() {
Serial.begin(115200);
int LED[] = { 11, 12, 13 };
unsigned long start;
unsigned long duration;
start = micros();
digitalWrite(LED[11], HIGH);
digitalWrite(LED[12], HIGH);
digitalWrite(LED[13], HIGH);
duration = micros() - start;
Serial.println(duration);
start = micros();
for (int i = 0; i < 4; i++) {
digitalWrite(LED[i], HIGH);
}
duration = micros() - start;
Serial.println(duration);
}
void loop() {
}
I get 16 microseconds on my Uno with inline and 20 microseconds with the loop. The times are only accurate to 4 microseconds.