Buongiorno a tutti,
chiedo la cortesia di un aiuto a risolvere un problema relativo all'istanziazione di una seriale SW all'interno di una libreria che la usa.
Provo a dettagliare meglio. Ho scritto una libreria che si chiama VFDLIB costituita dai suoi .h e .cpp.
Il display in oggetto ha bisogno di una seriale, per cui ho istanziato una seriale all'interno del codice .cpp della libreria stessa. In prima battuta, giusto epr fare delle prove ho fissato manualmente i due pin TX ed RX, poi ho pensato che questa seriale la userà solo la mia libreria per cui ho provato a parametrizzare nel costruttore i due pin TX ed RX e qui mi sono fermato.
In pratica se nel codice .cpp della VFDLIB inserisco questo costruttore:
VFDLIB::VFDLIB (int pinTX, int pinRX) {
SoftwareSerial mySerial(pinTX,pinRX);
}
il metodo init della libreria VFDLIB che usa mySerial, in questo caso:
Ti ringrazio moltissimo per l'aiuto e l'interesse al mio problema che stai dimostrando. Sol oper questo grazie!
Purtroppo però non funziona, compila regolarmente ma non funziona. Tra l'altro mi sono accorto adesso (poichè anche io non avevo avuto modo di provare prima) che anche istanziando la mySerial dentro il .cpp con valori fissi non scrive sulla seriale.
Sembrerebbe che l'unico modo per scrivere sulla seriale è instanziare tutto nel file di progetto principale senza usare la libreria. Vorrei evitare il blobbone però...
Quello che non capisco però è che se lascio la libreria senza l'instanziazione della softwareserial (e la faccio nel file principale) quando compilo il compilatore non mi risolve le chiamate dentro la libreria VFDLIB.ccp alla mySerial dicendomi che non la trova ....
Insomma sembrerebbe (ma sono certo che sono io che sbaglio) che non si riesce ad usare la softwareserial da dentro la libreria.
Come non detto, sono io che sono una capra!!!
Ero tanto preso dal problema della libreria che non ho fatto caso che avevo dichiarato int la variabile che contiene la velocità della seriale. Siccome per essere più veloce l'ho portata a 38400 dimenticandomi del fatto che un intero si ferma a 32767...
Chiedo venia.
Grazie ancora per l'ENORME aiuto che mi hai dato! Funziona tutto.