Marco__ Inserito: 11 maggio 2010 Segnala Share Inserito: 11 maggio 2010 Salve, volevo chiedere una delucidazione se possibile.Attraverso un bus seriale con cui mi collego attraverso un doppino con un PIC18 vorrei monitorare 3 valori (2 valori di temperatura e un valore di velocità).I due valori di temperatura vengono inviati sul bus con una cadenza di 1 secondo, mentre la velocità è inviata ogni 50 ms. Ognuno dei 3 valori è una sequenza di bit che ha un proprio identificativo, quindi dovrei riuscire almeno a distinguere che valore sto leggendo.Io vorrei intercettare con il pic questi tre valori che circolano sul bus (sono dati di tipo broadcast).Io conosco la velocità di trasmissione del bus che è di 250 kbits/s.All'inizio avevo pensato di usare il timer interno e mandarlo in overflow ogni 50ms per generare un interrupt e leggere il buffer per verdere se almeno la velocità viene acquisita. Ma ha poco senso suppongo perchè dovrei essere in grado di sincronizzarmi con gli altri nodi e il clock non è inviato con il dato. Se evitassi di sfruttare il timer e leggessi solo il buffer quando è pieno può funzionare? Solo che i due valori di temperatura mi arrivano entrambi ogni secondo. Come potrei procedere?SalutiMarco Link al commento Condividi su altri siti More sharing options...
kappa47 Inserita: 14 maggio 2010 Segnala Share Inserita: 14 maggio 2010 Ho letto solo oggi il tuo post.Credo di non aver capito il problema. Se le informazioni che vuoi estrarre dal bus hanno un identificativo univoco, basta “aspettare” che questi identificativi passino sul bus e quindi gestirle.Dove è il problema ? Semmai il problema può esserci se devi visualizzare la velocità in real-time.Ciao. Link al commento Condividi su altri siti More sharing options...
Marco__ Inserita: 14 maggio 2010 Autore Segnala Share Inserita: 14 maggio 2010 Grazie per la risposta.Le variabili hanno ognuna il proprio identificativo. Ad ogni modo ragionando, anche se le due variabili di temperatura vengono inviate sul bus ogni secondo, alla fine sul bus circolerà solo una informazione alla volta. Anche se hanno la stessa priorità. Altrimenti andrebbero in collisione. Il bus seriale è un CAN BUS, quindi alla fine ci pensa direttamente il livello hardware a risolvere la collisione. Ma perchè avrei problemi di real time per velocità? Io la vorrei monitorare, però vorrei sapere in tempo reale il suo valore.SalutiMarco Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora