Inviare byte multipli via usart

12 Anni 3 Mesi fa #6 da gcupini
Risposta da gcupini al topic Re: Inviare byte multipli via usart
ciao
Per inviarli con la funzione che tu citi, putUSART() e che io non conosco, Immagino tu debba ricomporre una con i sette caratteri.
Alcune tue osservazioni non mi sono chiarissime, le mie conoscenze mi dicono che una variabile carattere contiene senpre un codice da 0 a 255.
L'invio della stringa di caratteri non dovrebbe darti probleni. Eventualmente la stampa se ci sono caratteri non stampabili.

Se proprio li devi stampare come caratteri, Dopo la ricezione dovrai filtrare i caratteri della stringa e stamparli nel formato da te desiderato. Es. li puoi stampare come numeri da 0 a 255 oppure esadecimali 0x00 a 0xff oppure filtri i caratteri stampabili e li stampi.

Se non ho capito scusami
Saluti

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

  • gcupini
  • Visitatori
  • Visitatori
12 Anni 3 Mesi fa #7 da sharky
Risposta da sharky al topic Re: Inviare byte multipli via usart
ciao!

grazie della risposta, a giudicare da cio che hai scritto credo che tu abbia capito cosa devo fare..
putusart é compresa nelle funzioni della libreria usart.h di c18...

comunque la mia difficoltá sta nel ricomporre la stringa con i sette caratteri...

cioé se io avessi da mandare questo ad esempio: 40 43 4F 41 58 59 46 sarebbe semplice perche la stringa equivalente sarebbe "@COAXYF" e mi basterebbe usare putUSART("@COAXYF"); per inviare i dati sulla seriale..

il problema sta nel fatto che alcuni caratteri non hanno il corrispondente ascii, percio se io ad esempio dovessi inviare il seguente codice: AA BB CC DD EE FF non riuscirei a comporre la stringa da inviare via usart..

spero di essermi spiegato..

grazie

ciao

igor

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

  • sharky
  • Senior Member
  • Senior Member
Di più
12 Anni 3 Mesi fa #8 da gcupini
Risposta da gcupini al topic Re: Inviare byte multipli via usart
ciao,

Non so quale linguaggio usi per inviare e codificare le stringhe?

ECCO COME FAREI IN c

char V[7]; // Vettore di caratteri coincide con stringa
const char *ST; // Variavile di tipo stringa in C
V[0]=0x0F; // Assegni i singoli caratteri al vettore
V[1]=68; // nel formato preferito numero 0..255 es. 68='D' or
V[2]='A'; // esadecimale 0x0F=15 non stampabile or 'A' carattere stamp
// eccetera
ST=V; // Ora assegni il vettore ad una stringa costante oppure ti tieni il vettore V

char ch0=ST[0]; // come puoi notare ST è ancora un vettore e contiene
char ch1=ST[1]; // i caratteri immessi
char ch2=ST[2]; //
// ora se avessi la tua FUNZIONE FAREI
putUSART(V);
//oppure
putUSART(ST);
// eccetera

saluti

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

  • gcupini
  • Visitatori
  • Visitatori
12 Anni 3 Mesi fa #9 da Gianni
Risposta da Gianni al topic Re: Inviare byte multipli via usart
Scusa ma che c'è di difficile nel fare:

char variabile[]={0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};
putsUSART(variabile);

Ok alcuni caratteri non sono stampabili a video, ma hanno un codice ascii? Il problema è che molti dimenticano che una stringa "@CIAO" non è altro che un array, un vettore, una sequenza di bytes, come lo volete chiamare voi insomma... E come array va trattato.

Sono tutti bravi ad essere "open" con il "source" degli altri.
Un amico è colui che ti dice sempre quando stai sbagliando. Il mio miglior amico è il parser.
SettoreZero

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

  • Gianni
  • Avatar di Gianni
  • Elite Member
  • Elite Member
Di più
12 Anni 3 Mesi fa #10 da gcupini
Risposta da gcupini al topic Re: Inviare byte multipli via usart
ciao Gianni,
hai perfettamente ragione!
Sono stato un po' prolisso per pedanteria. Ma spero sia stao utile.

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