Buongiorno
Dopo qualche settimana ho ripreso in mano il mio modellino di lavastoviglie con Arduino
Ho scritto una macchina a stati per il pannello di controllo (nel file stateMachineControlPanelOLED) e delle funzioni per calcolare la durata dei programmi (nel file cycleProperties)
Ora vorrei far sì che, selezionato un programma, il display indichi la sua durata. Per farlo, avevo pensato di utilizzare nel file stateMachineControlPanelOLED le variabili hours e minutes definite nel file cycleProperties. Tuttavia, il compilatore mi dice "was not defined in this scope", come posso risolvere? Allego qui il codice, al posto di hours e minutes nel file stateMachineControlPanelOLED ho messo un fittizio "1h20" giusto per fare compilare il tutto. Ignorate i file controlPanel e controlPanelOLED
Per le funzioni l'IDE arduino risolve generando i prototipi di queste e li aggiunge in testa al file che dovrà essere compilato da gcc. Mentre per le variabili arduino IDE non fa nulla di paragonabile e non potrebbe fare diversamente. #include è una delle direttivi del preprocessore C/C++ (fa parte di gcc) ciò che fa è simile ad un copia ed incolla.
Con l'albero dei sorgenti attuali si può venire a creare il problema che hai avuto.
Non funzionerà poiché si vuole usare la variabile A che non risulta dichiarata ancora.
Ad intuito proverei a trasformare tutti i file ,h in .cpp. In questo modo le variabili dichiarate nel file .cpp possono essere private cioè non accessibili globalmente e ciò è buono. Si dice che sono variabili di modulo. C'è il modo per rendere visibili le variabili di modulo e basta usare extern dichiarazione in un file header.