Pagina 1 di 1

Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 13 feb 2014, 23:42
da mariot91
Ciao a tutti,
Ho una domanda probabilmente piuttosto banale a cui però non riesco a trovare una soluzione.
Ho realizzato un "voltmetro" con un dspic 30f4011 che banalmente acquisisce una tensione in ingresso tramite l'adc. A questo punto vorrei sapere,una volta messo il segnale in ingresso come posso leggere il contenuto dal registro ADCBUF0 (ho usato il CH0)?Non ho la possibilità di usare la porta seriale o un display lcd al momento quindi volevo semplicemente andare a leggere il valore del registro dall'mplab,come posso fare?
Grazie per l'aiuto

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 0:10
da Pepito
Ho una versione non aggiornatissima di MPLAB, comunque io sul mio posso vederlo, mentre sono in debug, da View->File Registers

ciao

PSQ

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 0:38
da TardoFreak
Ehm ... mi permetto umilmente di dare un suggerimento.
Uno schedino con un connettore a 3 o 4 poli (+5, TX, RX, GND) per un' interfaccia RS232 dovrebbe essere sempre disponibile. Quindi, secondo il mio modesto parere, varrebbe la pena cablarne uno per usarlo quando serve (in pratica sempre :mrgreen: ).
Poi, per carità, gli strumenti software possono fare la stessa funzione ma avere la visualizzazione su un terminale è sempre più comodo.

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 12:24
da mariot91
Grazie per le risposte.Pepito io avevo già provato in questo modo ma il problema è il seguente: ho provato ad accendere un led fisso sulla PORTB e ad eseguire il read una volta che il programma è in esecuzione.Dallo special funcion register pero' Il valore della PORTB rimane pero' sempre pari a 0000 anche se i led sono effettivamente accesi.L'unico modo per vedere una variazione sulla port B è usando il wach in fase di debugger.Tuttavia questo risulterebbe inutile per quando riguarda il modulo adc poiché per acquisire la tensione ho bisogno di eseguire il programma e non di eseguire il debug.Qualche idea su come risolvere?

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 12:34
da Paolino
Per accendere un LED sui dsPIC devi usare i registri LAT e non i PORT. Quindi, se hai un LED connesso (per ipotesi) a RB0, per accenderlo dovrai impostare:
Codice: Seleziona tutto
LATBbits.LATB0 = 1;


oppure:

Codice: Seleziona tutto
LATB = 1;



Il registro PORTB lo usi per eseguire le letture dai pin della porta B quando questi (i pin) sono INPUT.

mariot91 ha scritto:Tuttavia questo risulterebbe inutile per quando riguarda il modulo adc poiché per acquisire la tensione ho bisogno di eseguire il programma e non di eseguire il debug.Qualche idea su come risolvere?

Perdonami, ma secondo me stai facendo confusione tra utilizzo del simulatore e impiegare un debugger...
Se hai PICKit3, puoi utilizzarlo in modalità debug e, come suggerisce Foto UtentePepito, leggere i registri. Ti basta un break-point nel codice ed il gioco è fatto :ok:

Altro modo utilissimo (qualora non sia presente un debugger, ma non solo) è quello di seguire quello che il maestro Foto UtenteTardoFreak ha indicato!

Ciao.

Paolo.

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 12:44
da mariot91
Sisi perdonami avevo sbagliato a scrivere PORTB intendevo il LATB...riprovo con il debugger magari ho sbagliato qualcosa =)

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 13:49
da Pepito
In ogni caso concordo anche io con Foto UtenteTardoFreak, avere un'uscita su terminale è sempre un metodo semplice ed efficacie...
ciao

PSQ

Re: Domanda imbarazzante(utente alle prime armi)

MessaggioInviato: 14 feb 2014, 15:29
da mariot91
Grazie mille ho risolto,non avevo riconfigurato gli switch sulla dsPICDEM2 ecco perché in fase di debug non vedevo nulla^^..ora funziona,grazie per l'aiuto e per i consigli!