Potenziometro digitale

9 Anni 5 Mesi fa - 9 Anni 5 Mesi fa #26 da vito1984
Risposta da vito1984 al topic Potenziometro digitale
Ciao Mauro,

ho letto il tutorial ovviamente :)

per il momento (i potenziometri non mi sono ancora arrivati) ho lavorato soltanto tramite simulazione con Proteus, in cui sono presenti i modelli del PIC16F877A e dei potenziometri MCP410X0.

La routine di programmazione di un potenziometro che ho scritto è la seguente e il tutto funziona correttamente (al simulatore); in particolare mi ha funzionato correttamente inserendo l'istruzione di delay fra l'istruzione spi_write (r40) e l'istruzione RD1 = 1; speriamo funzioni nella realtà! :)


spi_settings (); /* SMP = 0; CKE = 0; CKP = 0; SSPM3 = 0; SSPM2 = 0; SSPM1 = 0; SSPM0 = 0; */
spi_start1 (); /* SSPEN = 1; RD1 = 1; RD0 = 0; RD1 pilota il chip select del potenziometro */
spi_write (17); /* command byte, 17 in decimale
spi_write (r40); /*data byte, valore di resistenza caricato nella variabile int r40 da passare al potenziometro*/
DelayUs(1);
RD1=1; /*RD1 pilota il chip select del potenziometro a 1 logico*/
Ultima Modifica 9 Anni 5 Mesi fa da vito1984.

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

  • vito1984
  • Junior Member
  • Junior Member
Di più
9 Anni 5 Mesi fa #27 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Potenziometro digitale
devi vedere se la funzione write e' bloccante fino a quando non viene inviato il byte (cosa che non credo).
All'ingresso della funzione probabilmente controlla se e' possibile inviare ma dopo aver inviato il byte esce dalla funzione.

Questo significa che se disabiliti il chip select subito dopo il write potresti interrompere la trasmissione (o meglio ricezione) del byte.

prima di disattivare il CS controlla che non sia presente alcuna trasmissione in corso.

Per quello il delay potrebbe aiutarti, ma 1us potrebbe andare nella simulazione ma non nella realta'.
Devi aspettare almeno 8 cicli di clock, o meglio controllare se la trasmissione e' terminata.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiStefAMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login