La curiosità è nata dal fatto che avendo una Mega con 70 pin utilizzabili, mi chiedevo se era davvero utile convertire tutti i cicli for di digital.write(x,0) e digital.read in PORTxx |= _BV(PORTxx); e PINxx
e direi proprio di si!! il tempo si dimezza quasi, un programma molto lungo, va ottimizzato al massimo, sapevo che era + veloce la manipolazione delle porte, ma non sapevo quanto
unsigned long preMillis=0;
unsigned long counter=0;
void setup(){
Serial.begin(9600);
}
void loop (){
//----------------------------------
/* accendi il led */ //44
//PORTL |= _BV(PORTL5);
/* spegni il led */ //44 questo lo fa 76.123/sec
//PORTL &= ~_BV(PORTL5);
//----------------------------------
//----------------------------------
digitalWrite(44,1);
digitalWrite(44,0);// questo lo fa 38.324/sec
//----------------------------------
counter++;
if(millis() - preMillis >= 1000)
{
preMillis = millis();
Serial.println((String)counter);
counter=0;
}
}