INTERRUPT e VIRTUALWIRE

Ciao Ragazzi, per sincronizzare la trasmissione e la ricezione stavo pensando di usare gli interrupt qualcuno di voi ci ha già provato ?

In questo modo lascerei nel loop arduino in rx e lo metterei in tx quando viene premuto un pulsante del keypad, a quel punto il ricevente riceve il messaggio aspetta qualche millesecondo e trasmette indietro il suo stato e per sicuro il trasmitte che ha inviato il messaggio principale riceverà il messaggio di ritorno in quanto è uscito dall'interrupt ed è tornato nella modalità di rx ...

cosa ne pensate ? avete visto qualche esempio in giro ?

Andrea

Non conosco VirtualWire né come opera, su che pin lavora, come è gestita ecc..
Non so se ci sono controindicazioni ad usare gli interrupt (e poi non ho capito come vorresti farlo).

In pratica i pin che utilizza virtual wire sono di default:

11 - RX
12 - TX
ma possono essere definitivi a piacimento.

io utilizzo un keypad per trasmettere (che va da 0 a 9 con * e # ), adesso succede che nel loop mi trovo a gestire tx ed rx questo significa che se non sincronizzo al 100 % le due cose rischio di perdere qualche pezzo, inoltre il programma rischia diventare confuso a livello di logica ...
con gli interrupt posso alzare la trasmissione solamente quando schiaccio il pulsante del keypad appena finisci la trasmissione, spegni l'interrupt torni nel main del programma e ti rimetti in rx ... Così dall'altra parte il ricevitore una volta ricevuto il dato potrà mandare indietro la risposta ...

se hai bisogno di altre info chiedimi pure grazie mille

gnusso:
Ciao Ragazzi, per sincronizzare la trasmissione e la ricezione stavo pensando di usare gli interrupt qualcuno di voi ci ha già provato ?

In questo modo lascerei nel loop arduino in rx e lo metterei in tx quando viene premuto un pulsante del keypad, a quel punto il ricevente riceve il messaggio aspetta qualche millesecondo e trasmette indietro il suo stato e per sicuro il trasmitte che ha inviato il messaggio principale riceverà il messaggio di ritorno in quanto è uscito dall'interrupt ed è tornato nella modalità di rx ...

cosa ne pensate ? avete visto qualche esempio in giro ?

Andrea

Ma sei sicuro che la libreria non lavora giá coi interrupt e depone i dati ricevuti in un buffer?
Ciao Uwe

l'altro giorno ho dato uno sguardo veloce alla libreria e mi pare di ricordare di aver visto i buffer per gli interrupt, sia in entrata che in uscita

Ciao, io ho provato a guardare la libreria l'ho fatta passare ma non ho visto riferimenti agli interrupt (.... :frowning: ) ...

ho provato a mettere un post anche su l'altro forum ...

http://arduino.cc/forum/index.php/topic,99801.0.html

diversamente verrebbe un casino gestendo tutto nel loop :frowning:

Ho guardato la libreria, attiva il timer1 e poi gestisce un interrupt agganciato a quel timer. Ma non so che relazione abbia con RX e TX, non ho indagato.