Errore utilizzando la libreria TVout

Salve a tutti,
Vorrei chiedervi a voi la libreria TVout funziona senza dare errori ?
Io ho scaricato il file denominato TVoutBeta1.zip nel quale c’erano 3 cartelle che ho spostato nella cartella libreries di arduino.
Purtroppo quando provo l’esempio DemoPAL nell’ ide mi vengono segnalati degli errori del quale non riesco veramente a capirne il motivo.
Qui è allegato lo screenshot dell’errore

Ti ri-invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

La libreria è vecchia, del 2010, anche la beta. Dall’immagine usi Arduino Leonardo, forse la libreria non è compatibile con la Leonardo, nel wiki c’e’ scritto Uno, Mega e Sanguino

Che ci vuoi fare poi ? Sappi che la tempistica per pilotare la TV è critica, in pratica il tuo sketch NON può fare altro, ad esempio provai un menu semplice pilotato da IR e NON funzionava perchè “ruba” il tempo e il segnale di sincronismo viene perso.

Ok grazie :slight_smile: , magari è per quello che non mi funziona

Non ho provato quella libreria, ma dando un'occhiata in giro ho l'impressione che nel file hardware_setup.h non entri in nessuna delle if relative alla tua piattaforma, per cui non definisce i simboli necessari.
Ad esempio se hai un ArduinoUNO v3 dovrebbe verificare questa if:

#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__)
//video
#if defined(ENABLE_FAST_OUTPUT)
#define PORT_VID PORTD
#define DDR_VID DDRD
#define VID_PIN 7
#else
#define PORT_VID PORTB
#define DDR_VID DDRB
#define VID_PIN 0
#endif
//sync
#define PORT_SYNC PORTB
#define DDR_SYNC DDRB
#define SYNC_PIN 1
//sound
#define PORT_SND PORTB
#define DDR_SND DDRB
#define SND_PIN 3

Quindi se non ti trova questi #define relativi al SND (mentre non protesta per i VID) mi sembra strano.
Dicci che IDE hai e soprattutto quale board stai usando.

Nella schermata si vede (in basso a destra) "Arduino Leonardo on COM3" ...
... NON mi risulta che la libreria TVout sia compatibile con l'ATmega32u4 utilizzato dalla Leonardo ... ::slight_smile:

Guglielmo

Leonardo? Allora prova ad aggiungere nel file hardware_setup.h queste righe:

#elif defined(__AVR_ATmega32U4__)
//video
#define _VID_PORT PORTE
#define _VID_DDR DDRE
#define _VID_PIN 6
//sync
#define _SYNC_PORT PORTB
#define _SYNC_DDR DDRB
#define _SYNC_PIN 5
//sound
#define _SND_PORT PORTB
#define _SND_DDR DDRB
#define _PIN_SND 7
#define _ANDI_HWS "andi r16,0xBF\n"
#define _BLD_HWS "bld r16,6\n\t"

PS: fonte: https://code.google.com/p/arduino-tvout/issues/detail?id=52

@docdoc : ... se hai letto anche i commenti avrai visto che comunque, anche con quelle modifiche, le possibilità di successo sono piuttosto scarse o comunque l'output è di qualità inferiore a quello che si ottiene con la UNO. :confused:

Se quella fosse la "soluzione definitiva" ... l'avrebbero implementata nella libreria, purtroppo credo ... sia solo un palliativo per ottenere un qualche cosa anche con la Leonardo, ma comunque NON è una modifica ufficialmente supportata dall'autore ...

Guglielmo

La TVout integrata nell'IDE è questa --> GitHub - Avamander/arduino-tvout: Arduino-TVout
Presumo sia la stessa indicata da DocDoc, ma spostata su GitHub.

gpb01:
@docdoc : ... se hai letto anche i commenti avrai visto che comunque, anche con quelle modifiche, le possibilità di successo sono piuttosto scarse o comunque l'output è di qualità inferiore a quello che si ottiene con la UNO. :confused:

Si, esatto, ma almeno compila, che è quello che segnalava l'amico, no? :smiley: Che poi non abbia una minima qualità è un altro discorso, e lì si può fare poco... ;D

PaoloP:
La TVout integrata nell'IDE è questa --> GitHub - Avamander/arduino-tvout: Arduino-TVout
Presumo sia la stessa indicata da DocDoc, ma spostata su GitHub.

... e NON include la Leonardo :grin: :grin: :grin:

Guglielmo

Grazie a tutti delle risposte, ho provato ad aggiungere la parte di righe al file hardware_setup.h riguardanti l'ATmega32u4 però continua a darmi lo stesso errore, vorrà dire che proverò con un altra scheda

StEf97:
ho provato ad aggiungere la parte di righe al file hardware_setup.h riguardanti l'ATmega32u4 però continua a darmi lo stesso errore

... anche alla persona del commento #5 nel link riportato da docdoc

Guglielmo

StEf97:
Grazie a tutti delle risposte, ho provato ad aggiungere la parte di righe al file hardware_setup.h riguardanti l'ATmega32u4 però continua a darmi lo stesso errore, vorrà dire che proverò con un altra scheda

Scusate, ma io sono testardo e fino a che non capisco una cosa non mi arrendo... :wink:

Ho fatto qualche altra ricerca, e devo quindi fare una precisazione e una correzione.
Primo, nel forum che ho postato si fa riferimento ad un altro forum, in russo (dove c'è anche il messaggio di cui parla il nostro buon Guglielmo), ma traducendolo leggo che il tizio in realtà ha risolto, ossia compila dopo aver corretto i simboli (ma poi in TV out non vede bene le immagini attese, forse potrebbe essere legato allo standard video russo, mi sembra sia SECAM, ma come detto questo è eventualmente un altro problema da affrontare appena compila)!

Non avevo fatto caso che i simboli erano errati anche nel listato che ti ho postato io! Infatti l'errore riportato da te era per i simboli "DDR_SND", "SND_PIN", e "PORT_SND", mentre nel codice ti facevo creare tutt'altro! Inoltre mancava anche una #endif (verifica di aver poi messo il blocco in un punto "corretto", diciamo prima di "#elif defined (AVR_AT90USB1286)").
Prova così:

#elif defined(__AVR_ATmega32U4__)
//video
#define PORT_VID	PORTE
#define DDR_VID		DDRE
#define VID_PIN		6
//sync
#define PORT_SYNC	PORTB
#define DDR_SYNC	DDRB
#define SYNC_PIN	5
//sound
#define PORT_SND	PORTB
#define DDR_SND	DDRB
#define SND_PIN		7

#endif

Come su consiglio di docdoc ho ri modificato la parte del file hardware_setup.h.
Le righe nuove le ho aggiunte nel punto subito prima del #elifdefined (AVR_AT90USB1286), in allegato c’è lo screenshot del punto in cui le ho inseritee e uno screenshot dell’ errore che continua a darmi

… scegli … o sono inserite nel punto sbagliato e le devi spostare al punto giusto (… come ultima condizione visto che sono concluse con un #endif) oppure devi eliminare il #endif alla fine visto che poi … c’è un altro #elif defined (… in pratica stai mettendo un end if dove invece c’è un else if :wink: )

Guglielmo

P.S. : Quello in allegato dovrebbe essere corretto … che poi funzioni o meno è un’altro discorso :wink:

hardware_setup.h (4.38 KB)

Niente, continua a darmi lo stesso errore, ho provato a cambiare il tipo di arduino mettendo nell' ide l'Uno e compila, il problema è che con il leonardo non ne vuole sapere di funzionare

… si, ho verificato anche io, risolti una serie di problemi ne vengo fuori tutta un’altra serie.

Credo che cambiare board sia la soluzione più ragionevole :wink:

Guglielmo

Già , mi sa' che prenderò un Arduino Uno così so che funziona tutto.
Grazie a tutti del supporto :slight_smile: