PIC18 - Uart e buffer a lunghezza variabile
Buon giorno a tutti.
Vi rompo le scatole perché ho il seguente problema:
PREMESSA:
Sto usando un PIC18f4620 e un modulo wifi-eth/UART
http://www.hlktech.net/product_detail.php?ProId=39
Il tutto mi serve per mettere in piedi un web server.
Il modulo wifi mi invia direttamente i dati in modo trasparente sulla uart del PIC, i quali riesco a leggerli tranquillamente salvandoli in un buffer da 512 byte.
PROBLEMA:
Il mio problema è che la lunghezza della risposta da parte del modulo WIFI è variabile e mi trovo in difficoltà a capire quando la trasmissione è terminata.
A priori non posso sapere ne quanto è lunga la stringa ne quando il modulo trasmette.
Per il "quando trasmette" uso tranquillamente l'interrupt.
Ma come faccio a determinare quando la trasmissione è finita senza perdere parte della stringa?
Pensavo di usare un timer, in modo tale che da quando parte l'interrupt conto XXXms e poi manipolo la stringa. Ovviamente i millisecondi impostati devono essere sufficienti a ricevere qualsiasi stringa, però non mi piace molto come soluzione.
Cosa ne pensate?
Spero di risultare comprensibile
Grazie a tutti
Vi rompo le scatole perché ho il seguente problema:
PREMESSA:
Sto usando un PIC18f4620 e un modulo wifi-eth/UART
http://www.hlktech.net/product_detail.php?ProId=39
Il tutto mi serve per mettere in piedi un web server.
Il modulo wifi mi invia direttamente i dati in modo trasparente sulla uart del PIC, i quali riesco a leggerli tranquillamente salvandoli in un buffer da 512 byte.
PROBLEMA:
Il mio problema è che la lunghezza della risposta da parte del modulo WIFI è variabile e mi trovo in difficoltà a capire quando la trasmissione è terminata.
A priori non posso sapere ne quanto è lunga la stringa ne quando il modulo trasmette.
Per il "quando trasmette" uso tranquillamente l'interrupt.
Ma come faccio a determinare quando la trasmissione è finita senza perdere parte della stringa?
Pensavo di usare un timer, in modo tale che da quando parte l'interrupt conto XXXms e poi manipolo la stringa. Ovviamente i millisecondi impostati devono essere sufficienti a ricevere qualsiasi stringa, però non mi piace molto come soluzione.
Cosa ne pensate?
Spero di risultare comprensibile
Grazie a tutti
