ricevere dati via USART

11 Anni 9 Mesi fa #6 da gcupini
Risposta da gcupini al topic Re: ricevere dati via USART
ciao
certamente dopo che hai ricevuto il Byte puoi inserire qualsiasi istruzione di controllo.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • gcupini
  • Visitatori
  • Visitatori
11 Anni 9 Mesi fa #7 da luongo
Risposta da luongo al topic Re: ricevere dati via USART

gcupini ha scritto: ciao
certamente dopo che hai ricevuto il Byte puoi inserire qualsiasi istruzione di controllo.


Quindi recapitolando ricevo i byte li salvo e poi li controllo tutti e scelgo cosa fare

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • luongo
  • Avatar di luongo
  • Premium Member
  • Premium Member
Di più
11 Anni 9 Mesi fa - 11 Anni 9 Mesi fa #8 da gcupini
Risposta da gcupini al topic Re: ricevere dati via USART
ciao

Hai più alternative a disposizione:
1) (PRIMA) come hai detto tu puoi salvare tutti i byte ed alaborarli alla fine della ricezione, è sottinteso che il flusso principale del tuo programma deve essere in attesa dei caratteri in arrivo e avere il tempo di memorizzarli prima che arrivi un nuovo carattere.
2) (SECONDA) pui analizzare ogni byte quando arriva ed effettuare scelte logiche immediate. S'intende che i tempi di spedizione dei singoli byte (da parte di PIC1) devono tener conto del tempo di ricezione ed elaborazione di ciascun Byte(da parte di PIC2). Per intenderci (se sviluppi il codice di ricezione nel main program di PIC2) e se PIC1 invia un byte con l'istruzione [con putch(char)] allora il codice di PIC2 deve essere in attesa sull'istruzione simmetrica [getch()]. Se il tuo PIC2 sta lavorando per testare il precedente carattere che ha ricevuto (o altro) rischi di perdere il carattere in arrivo.
3) (TERZA) spesso se si devono eseguire elaborazioni cicliche su PIC2, indipendenti dalla ricezione, allora è opportuno usare l'interrupt su ricezione di un carattere. In questo caso il flusso di eleboraziane principale (di PIC2) viene "sospeso" quando si ha la ricezione di un carattere (provenienente da PIC1) fino a quando la ricezione non è terminata e il flusso ritorna al main program.

Se non sono stato chiaro informami. forse sarebbe meglio ti scrivessi due spezzoni di codice c.

buon lavoro
Ultima Modifica 11 Anni 9 Mesi fa da gcupini.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • gcupini
  • Visitatori
  • Visitatori
11 Anni 9 Mesi fa #9 da luongo
Risposta da luongo al topic Re: ricevere dati via USART

gcupini ha scritto: ciao

Hai più alternative a disposizione:
1) (PRIMA) come hai detto tu puoi salvare tutti i byte ed alaborarli alla fine della ricezione, è sottinteso che il flusso principale del tuo programma deve essere in attesa dei caratteri in arrivo e avere il tempo di memorizzarli prima che arrivi un nuovo carattere.
2) (SECONDA) pui analizzare ogni byte quando arriva ed effettuare scelte logiche immediate. S'intende che i tempi di spedizione dei singoli byte (da parte di PIC1) devono tener conto del tempo di ricezione ed elaborazione di ciascun Byte(da parte di PIC2). Per intenderci (se sviluppi il codice di ricezione nel main program di PIC2) e se PIC1 invia un byte con l'istruzione [con putch(char)] allora il codice di PIC2 deve essere in attesa sull'istruzione simmetrica [getch()]. Se il tuo PIC2 sta lavorando per testare il precedente carattere che ha ricevuto (o altro) rischi di perdere il carattere in arrivo.
3) (TERZA) spesso se si devono eseguire elaborazioni cicliche su PIC2, indipendenti dalla ricezione, allora è opportuno usare l'interrupt su ricezione di un carattere. In questo caso il flusso di eleboraziane principale (di PIC2) viene "sospeso" quando si ha la ricezione di un carattere (provenienente da PIC1) fino a quando la ricezione non è terminata e il flusso ritorna al main program.

Se non sono stato chiaro informami. forse sarebbe meglio ti scrivessi due spezzoni di codice c.

buon lavoro


Nel PIC1 io eseguo un'acquisizione dall'adc e a seconda di quanto acquisito spedisco un pacchetto di quattro bytes quindi secondo me (se sbagli dillo) è meglio usare la soluzione cge memorizza tutti i bytes e poi li processa e immettere un rtardo di un 100 us nel PIC1 prima dell'acquisizione succesiva

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • luongo
  • Avatar di luongo
  • Premium Member
  • Premium Member
Di più
11 Anni 9 Mesi fa #10 da gcupini
Risposta da gcupini al topic Re: ricevere dati via USART
ciao
Nel caso illustrato la tua scelta mi sembra corretta.

Saluti

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • gcupini
  • Visitatori
  • Visitatori
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login