LCD_write_message("$PING 200");

9 Anni 1 Mese fa #21 da permax1958
Risposta da permax1958 al topic LCD_write_message("$PING 200");
Ciao
ho provato a compilare con MplabX e XC8 il tuo progrtto secondo i file che hai postato nell'altro forum modificando solo tre cose:
--la prima nel file di config ho cambiato #pragma config PLLDIV = 5 per non creare malfunzionamenti alla USB perchè il PLL si aspetta in ingresso 4MHz e con un quarzo da 20MHz bisogna dividere per 5;
--la seconda ho modificato la sequenza del messaggio da inviare come ti ho spiegato altre volte;
--la terza modifica riguarda il pin RC1 che ho abilitato come OUTPUT perchè lo uso come backlight per LCD.
Ho provato controllando la linea seriale con un analizzatore di protocollo ed ho visto che il PIC trasmetteva il messaggio giusto a 57600 ma il modulo wifi non rispondeva, normalmente risponde con $OK-PANEL, ho provato alcune modifiche ma niente di fatto poi ho provato a forzare un reset al modulo wifi togliendo alimentazione per poi rialimentarlo, a quel punto tutto ha funzionato, quindi prova anche tu.
Quando lanci il programma e arrivi al punto in cui sull'LCD appare ...start e rimane in attesa che sia premuto il pulsante per inviare il messaggio, a quel punto togli alimentazione dal modulo wifi poi lo rialimenti attendi una decina di secondi per stare dalla parte del sicuro poi premi il pulsante per avviare la trasmissione.
Prima di tutto controlla i collegamenti il Tx del PIC con Rx del modulo wifi e il Rx del PIC con Tx del modulo wifi.
Ringraziano per il messaggio: Lello Guidi

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

  • permax1958
  • Premium Member
  • Premium Member
Di più
9 Anni 1 Mese fa #22 da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");
Grazie, oggi appena posso provo i tuoi consigli.
Saluti

Lello

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

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
9 Anni 1 Mese fa #23 da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");

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.

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
9 Anni 1 Mese fa #24 da permax1958
Risposta da permax1958 al topic LCD_write_message("$PING 200");
Ciao leelo
ho visto il file ma devo dirti che quello non è l'approccio giusto per ricevere i messaggi dal modulo perchè la funzione che usi si aspetta un numero fisso di caratteri e se il messaggio è più lungo alcuni caretteri verranno persi invece se il messaggio è più corto la funzione blocca l'esecuzione del codice in quanto rimane li in attesa dei caratteri mancanti a "len".
Per fare delle prove può anche andare bene per vedere se il modulo manda una risposta ma per realizzare un progetto funzionale bisogna utilizzare l'interrupt sulla ricezione seriale ricevendo un byte alla volta e inserendolo in un array di char inoltre bisogna creare un loop principale "while(1)" dove si verifica se l'ultimo carattere è '\n' in tal caso si è sicuri di aver ricevuto il messaggio completo e si passa all'elaborazione dello stesso.

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

  • permax1958
  • Premium Member
  • Premium Member
Di più
9 Anni 1 Mese fa #25 da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");
Pensavo fosse piu' semplice! :)
Comunque ho capito e provo a scrivere qualche riga di codice.
Grazie

Lello

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

  • Lello Guidi
  • Avatar di Lello Guidi
  • Platinum Member
  • Platinum Member
Di più
Moderatori: Mauro Laurenti

Registrati al sito

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

Registrati al sito LaurTec.

Login