- Messaggi: 527
- Ringraziamenti ricevuti 86
LCD_write_message("$PING 200");
9 Anni 1 Mese fa #16
da alfa75
Risposta da alfa75 al topic LCD_write_message("$PING 200");
il pin di trasmissione UART RC6 deve essere un output
quindi prova a cambiare RC6 da 1 a 0 è dovresti vedere il led lampeggiare
Ciao
Andrea
quindi prova a cambiare RC6 da 1 a 0 è dovresti vedere il led lampeggiare
Ciao
Andrea
Si prega Accedi o Crea un account a partecipare alla conversazione.
- alfa75
- Platinum Member
Riduci
Di più
9 Anni 1 Mese fa #17
da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");
Ho provato, ho anche aggiunto nella configurazione iniziale il comando "LATCbits.LATC7 = 1;" ma l'Usart non invia i dati in uscita.
Devo verificare con un oscilloscopio se dal Tx(Rc6) esce qualche cosa.
Ho scritto un messaggio nell'argomento Progetti, sperando che Technomaker mi risponda in merito al problema.
Saluti
Lello
Devo verificare con un oscilloscopio se dal Tx(Rc6) esce qualche cosa.
Ho scritto un messaggio nell'argomento Progetti, sperando che Technomaker mi risponda in merito al problema.
Saluti
Lello
Si prega Accedi o Crea un account a partecipare alla conversazione.
9 Anni 1 Mese fa #18
da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");
Questo e' quello che vedo con l'oscilloscopio, quindi la Usart del pic invia correttamente i dati.
Saluti
Lello
Saluti
Lello
Si prega Accedi o Crea un account a partecipare alla conversazione.
9 Anni 1 Mese fa - 9 Anni 1 Mese fa #19
da technomaker
Risposta da technomaker al topic LCD_write_message("$PING 200");
Ciao
sto facendo un progetto usando PIC18F46K22 e miuPanel.
Ricordo che se non si mette un ritardo (diciamo 10ms) dopo aver attivato la seriale, i primi caratteri sono incomprensibili.
Inoltre ricordo di inserire un ritardo di 5 secondi (abbondiamo per togliere il dubbio che sia quello) tra l'accensione del vostro PIC e l'invio di messaggi al modulo wi-fi, in modo di dare al modulo wi-fi il tempo di eseguire il boot.
Vi passo la funzione che ho fatto per inizializzare la periferica (uso oscillatore interno a 16M con PLL attivato, per avere una fosc di 64Mhz)
void UART_Open (void){
//Impostazione EUSART (modo asincrono)
BAUDCON1bits.CKTXP =0; // Transmit Polarity Select bit (1 = Idle state for TX is LOW)
BAUDCON1bits.DTRXP=0; // Receive Polarity Select bit
BAUDCON1bits.BRG16 =1; // 16-bit Baud Rate Generator bit (1 = 16bit , 0= 8bit )
TXSTA1bits.TX9 = 0; // 0 = Selects 8-bit transmission, nessun bit di parità
TXSTA1bits.SYNC =0; // 0 = Asynchronous mode
TXSTA1bits.BRGH = 1; // 1= alta velocità
SPBRG1 = 0x15; // Baud rate 57.600 (valore tabulato per Fosc=64,SYNC=0, BRG16=1, BRGH=1)
SPBRGH1 = 0x01;
PIE1bits.TX1IE = 0; // Abilitazione interrupt EUSART1 in trasmissione (0=disabilitato, 1=abilitato)
IPR1bits.TX1IP = 0; // Priorità interrupt EUSART1 in trasmissione (0= BASSA, 1= ALTA)
PIE1bits.RC1IE = 1; // Abilitazione interrupt EUSART1 in ricezione (0=disabilitato, 1=abilitato)
IPR1bits.RC1IP = 0; // Priorità interrupt EUSART1 in ricezione (0= BASSA, 1= ALTA)
RCSTA1bits.SPEN = 1; // 1= Serial port enabled (configures RXx/DTx and TXx/CKx pins as serial port pins)
TXSTA1bits.TXEN = 1; // TX enabled
RCSTA1bits.CREN =1; // RX enabled
delay_ms(5); // serve un delay di almeno 1 ms altrimenti i primi caratteri sono incomprensibili
}
sto facendo un progetto usando PIC18F46K22 e miuPanel.
Ricordo che se non si mette un ritardo (diciamo 10ms) dopo aver attivato la seriale, i primi caratteri sono incomprensibili.
Inoltre ricordo di inserire un ritardo di 5 secondi (abbondiamo per togliere il dubbio che sia quello) tra l'accensione del vostro PIC e l'invio di messaggi al modulo wi-fi, in modo di dare al modulo wi-fi il tempo di eseguire il boot.
Vi passo la funzione che ho fatto per inizializzare la periferica (uso oscillatore interno a 16M con PLL attivato, per avere una fosc di 64Mhz)
void UART_Open (void){
//Impostazione EUSART (modo asincrono)
BAUDCON1bits.CKTXP =0; // Transmit Polarity Select bit (1 = Idle state for TX is LOW)
BAUDCON1bits.DTRXP=0; // Receive Polarity Select bit
BAUDCON1bits.BRG16 =1; // 16-bit Baud Rate Generator bit (1 = 16bit , 0= 8bit )
TXSTA1bits.TX9 = 0; // 0 = Selects 8-bit transmission, nessun bit di parità
TXSTA1bits.SYNC =0; // 0 = Asynchronous mode
TXSTA1bits.BRGH = 1; // 1= alta velocità
SPBRG1 = 0x15; // Baud rate 57.600 (valore tabulato per Fosc=64,SYNC=0, BRG16=1, BRGH=1)
SPBRGH1 = 0x01;
PIE1bits.TX1IE = 0; // Abilitazione interrupt EUSART1 in trasmissione (0=disabilitato, 1=abilitato)
IPR1bits.TX1IP = 0; // Priorità interrupt EUSART1 in trasmissione (0= BASSA, 1= ALTA)
PIE1bits.RC1IE = 1; // Abilitazione interrupt EUSART1 in ricezione (0=disabilitato, 1=abilitato)
IPR1bits.RC1IP = 0; // Priorità interrupt EUSART1 in ricezione (0= BASSA, 1= ALTA)
RCSTA1bits.SPEN = 1; // 1= Serial port enabled (configures RXx/DTx and TXx/CKx pins as serial port pins)
TXSTA1bits.TXEN = 1; // TX enabled
RCSTA1bits.CREN =1; // RX enabled
delay_ms(5); // serve un delay di almeno 1 ms altrimenti i primi caratteri sono incomprensibili
}
Ultima Modifica 9 Anni 1 Mese fa da technomaker.
Ringraziano per il messaggio: Lello Guidi
Si prega Accedi o Crea un account a partecipare alla conversazione.
- technomaker
- New Member
Riduci
Di più
- Messaggi: 19
- Ringraziamenti ricevuti 3
9 Anni 1 Mese fa #20
da Lello Guidi
Risposta da Lello Guidi al topic LCD_write_message("$PING 200");
Grazie per la risposta.
Io ho a disposizione il 16F877A e il 18F4550.
Non conosco il PIC18F46K22 ma scarico il datasheet e gli do una occhiata.
Dopo la lettura del datasheet vedo di adattare la sua funzione per poterla provare con i miei pic.
Saluti
Lello
Io ho a disposizione il 16F877A e il 18F4550.
Non conosco il PIC18F46K22 ma scarico il datasheet e gli do una occhiata.
Dopo la lettura del datasheet vedo di adattare la sua funzione per poterla provare con i miei pic.
Saluti
Lello
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.