Strano problema con UART su PIC18F4550

  • Nutshell
  • Autore della discussione
  • Premium Utente
  • Premium Utente
Di più
5 Anni 1 Mese fa #1 da Nutshell
Strano problema con UART su PIC18F4550 è stato creato da Nutshell
Ciao a tutti!

La quarantena mi ha dato un po' di tempo per dedicarmi a qualche progetto lasciato in un angolo.
In questo caso ho riesumato un vecchio progetto che faceva da "filtro uart" scritto per C18. Adesso ho aggiunto una porta USB per fare anche da bridge e ho convertito tutto per XC8.
Ebbene.. la comunicazione via usb sta funzionando regolarmente, mentre quando tento di inviare qualche byte sulla uart, il programma si pianta.
La funzione per scrivere sulla uart è banalissima:

void WriteUSART(unsigned char byte)
{
while(!TXIF)
continue;
TXREG = byte;
}

Il programma si pianta nel ciclo while. Ho provato a commentare solo per un test il ciclo while e in questo caso ovviamente non si blocca il programma, ma comunque non viene trasmesso nulla.

Starò sbagliando qualcosa nella configurazione della porta?

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

  • Mauro Laurenti
  • Moderatore
  • Moderatore
Di più
5 Anni 1 Mese fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Strano problema con UART su PIC18F4550
Salve,

il problema è proprio il while, che genera un blocco.

Lo stack USB Microchip, è una state machine che cambia stato con gli eventi.
Creando una funzione bloccante, impedisci il cambio di stato.
Quando arriva un nuovo pacchetto dati dall'host, se lo stato del device non è cambiato hai degli errori.

Devi controllare il flag ma non creare un blocco della state machine.

Come risolvere il problema lo trovi nel seguente tutorial.

Utilizzare la libreria USB Microchip

Saluti,

Mauro
I seguenti utenti hanno detto grazie : Nutshell

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

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.

Forum - Ultimi messaggi