Vai al contenuto
PLC Forum


Monitorare Più Variabile Con Pic


Marco__

Messaggi consigliati

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?

Saluti

Marco

Link al commento
Condividi su altri siti


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

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.

Saluti

Marco

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...