PIC E SIM340
13 Anni 1 Mese fa - 13 Anni 1 Mese fa #26
da Mauro Laurenti
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da Mauro Laurenti al topic Re: PIC E SIM340
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
13 Anni 1 Mese fa #27
da davix10
Risposta da davix10 al topic Re: PIC E SIM340
Ok grazie per la risposta ora è chiaro ma come potrei fare per creare una stringa dalla ricezione dei dati sull'USART per poi confrontarla?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- davix10
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 41
- Ringraziamenti ricevuti 0
13 Anni 1 Mese fa #28
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC E SIM340
...questo puo' essere un buon esercizio!
Credo che una stringa, ovvero un messaggio di risposta dal modulo sia un ritorno a capo, ovvero il carattere ASCII numero 13.
Ogni carattere che leggi che non sia un ritorno a capo lo metti in un array e poi incrementi l'indice dell'array in maniera da scrivere il prossimo carattere in una nuova cella dell'array.
Quando ricevi il ritorno a capo aggiungi il carattere '/0' all'ultimo elemento della stringa e fai il confronto con il messaggio che vuoi...
Saluti,
Mauro
Credo che una stringa, ovvero un messaggio di risposta dal modulo sia un ritorno a capo, ovvero il carattere ASCII numero 13.
Ogni carattere che leggi che non sia un ritorno a capo lo metti in un array e poi incrementi l'indice dell'array in maniera da scrivere il prossimo carattere in una nuova cella dell'array.
Quando ricevi il ritorno a capo aggiungi il carattere '/0' all'ultimo elemento della stringa e fai il confronto con il messaggio che vuoi...
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
13 Anni 1 Mese fa - 13 Anni 1 Mese fa #29
da davix10
Risposta da davix10 al topic Re: PIC E SIM340
Ma il ritorno a capo non dovrebbe essere solo alla fine? Con il comando WriteUSART (data); lui mi scrive OK e non solo O o solo K.
Io ho provato così:
unsigned char corretto [3]={'O','K','\0'};
data[0] = ReadUSART();
WriteUSART (data[0]);
data[1] = '\0';
if (strcmppgm2ram(corretto,data)==0)
Io ho provato così:
unsigned char corretto [3]={'O','K','\0'};
data[0] = ReadUSART();
WriteUSART (data[0]);
data[1] = '\0';
if (strcmppgm2ram(corretto,data)==0)
Ultima Modifica 13 Anni 1 Mese fa da davix10.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- davix10
- Autore della discussione
- Senior Member
Riduci
Di più
- Messaggi: 41
- Ringraziamenti ricevuti 0
13 Anni 1 Mese fa #30
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC E SIM340
Ciao,
Il Carriage return e' solo alla fine ma tu non sai quando arriverà. In generale se sei in ascolto di un messaggio e non sai quale sia, non sai quando arriverà il carattere ASCII 13.
WriteUSART se non ricordo male invia solo un byte. Dargli in pasto un array e' errato, e dovresti probabilmente avere una warning di tipo sospetto passato alla funzione. Non escludo che scrivere WriteUSART (data); non invii ne' O ne' K ma l'indirizzo dell'array, o meglio una parte di esso (1 byte).
L'esempio che hai riportato non funziona. Controlla i passi che ti avevo suggerito e quelli che fai.
Il buffer potresti implementarlo anche in maniera diversa ma il principio sara' lo stesso.
Non pensare in C ma nella logica che c'e' dietro, ovvero implementa un algoritmo.
Saluti,
Mauro
Il Carriage return e' solo alla fine ma tu non sai quando arriverà. In generale se sei in ascolto di un messaggio e non sai quale sia, non sai quando arriverà il carattere ASCII 13.
WriteUSART se non ricordo male invia solo un byte. Dargli in pasto un array e' errato, e dovresti probabilmente avere una warning di tipo sospetto passato alla funzione. Non escludo che scrivere WriteUSART (data); non invii ne' O ne' K ma l'indirizzo dell'array, o meglio una parte di esso (1 byte).
L'esempio che hai riportato non funziona. Controlla i passi che ti avevo suggerito e quelli che fai.
Il buffer potresti implementarlo anche in maniera diversa ma il principio sara' lo stesso.
Non pensare in C ma nella logica che c'e' dietro, ovvero implementa un algoritmo.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Login
© LaurTec 2006 - 2024