lentezza richiamo array

perchè questo codice è lento? 75 microsecondi?

  byte b = c[a];

dove c è un array di 92 byte e a una variabile byte?

c’è un metodo più veloce?

Hai provato a separare le cose? byte b; b = c[a];

Alle volte i compilatori si "intrippano" quando trovano cose un po' strane.

si si, sempre= sto analizzando un codice lento e ho notato un'altra stranezza:

long a = (600000/periodo)-10;
//12 micros

r=periodo/360;

//36 micros

non capisco la seconda è più facile eppure diventa più lunga.

credo dipenda da qualche trucco nell’algebra dei bit

conoscete qualche controtrucco per fregarlo?

non credo, si tratta di un'ottimizzazione a livello di compilatore, o esiste un parametro per dirgli di non ottimizzare o modifichi il compilatore

gcc accetta opzioni per ottimizzare il codice per velocità, compattezza o compatibilità. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

Di solito io ho sempre impostato su "-o2", non so l'IDE di Arduino come lo gestisce.