Avendo da sistemare le connessioni su un CS, vorrei ridefinire i piedini in modo da poter attivarli/usarli in un ciclo di for.
A quanto pare ciò esiste già. Non so esattamente come si potrà farlo senza incorrere a conflitti con le definizioni standard di arduino.
Forse non dovrei usare dei #define, ma un array con i nomi standard. Non credo, dato che le funzioni digitalRead() e le altre due, vorranno il nome vero della Porta, non valori stringa di sicuro. Che, buffamente, è anch' esso una definizione di un numero di una locazione di memoria.
Faccio un esempio , attivare la D2, D5, A3, D12,A2 con un indirizzamento
byte maschera = 0b10111111; // la maschera mi serve per definire i livelli di uscita in una sequenza
Byte porta[] = { 3,5,7,12,15,19,2};
byte x;
for (x=0; x<8; x++) pinMode(porta[x], OUTPUT};
for (x=0; x<8; x++) {
digitalWrite(bitRead(maschera[x]))
}
Faccio fatica a scrivere dal telefono Quindi ho dimenticato di controllare quante ne ho scritte.
Stamani ho fatto una ulteriore prova. Quindi posso confermare che anche le porte A0~A7 si possono mettere nell'array, così come si usano per pinMode() ecc.
Ho anche dichiarato const l'array, per risparmiare
Nel concetto di Arduino, ogni porta (nota che dovresti parlare di PIN, una PORTA è un INSIEME di pin) è un numero, né più, né meno, con tutto quel che ne consegue.
Occhio però che i bit si contano da destra verso sinistra:
ExperimentUno:
Faccio fatica a scrivere dal telefono Quindi ho dimenticato di controllare quante ne ho scritte.
Stamani ho fatto una ulteriore prova. Quindi posso confermare che anche le porte A0~A7 si possono mettere nell'array, così come si usano per pinMode() ecc.
Ho anche dichiarato const l'array, per risparmiare
Le entrate analogiche A6 e A7 (presenti nel ATmega328 SMD come nel Arduino NANO) non hanno funzione digitale.
Ciao Uwe