× MSP430, Microcontrollori 16 bit Ultra Low Power

come si utilizza l' adc del micro msp430 ??

12 Anni 1 Mese fa #6 da Ross
che differenza c'è tra la modalità repeat single channel e la conversione singola ?? non posso utilizzare la seconda e fare un loop continuo ?

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

  • Ross
  • Junior Member
  • Junior Member
Di più
12 Anni 1 Mese fa #7 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: come si utilizza l' adc del micro msp430 ??
Ciao,

la modalita' repeat e' un modo per automatizzare la conversione senza intervento della CPU, mentre la conversione unica non rigenera un nuovo trigger automaticamente al termine della conversione.
Nella famiglia MSP430F5xxx e MSP430F6xxx trovi anche la conversione automatica di una sequenza di canali, in maniera ciclica.

Per imparare ad utilizzare l'ADC e' meglio iniziare con la conversione singola e avviare la conversione manualmente.

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 1 Mese fa #8 da Ross
Stavo guardando il primo esempio di codice dell' adc in cui si esegue un' unica conversione sul canale ao

while (1)
{
ADC12CTL0 |= ADC12SC; // Start conversion

while (!(ADC12IFG & BIT0));
__no_operation(); // SET BREAKPOINT HERE
}
}

Non capisco perchè nell' and all' interno del ciclo ci mette tutto il registro ADC12FG e non il singolo bit che mi interessa cioè ADC12FG0. In quel caso lì se quel bit era settato essendo bit0 uguale 1 , l and tra i due mi dava uno e negato zero ed usciva dal ciclo.L' uscita dal ciclo corrisponde alla fine della conversione. Non capisco però perchè mi fa l' and tra un registro e un bit..che senso ha ??

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

  • Ross
  • Junior Member
  • Junior Member
Di più
12 Anni 1 Mese fa #9 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: come si utilizza l' adc del micro msp430 ??
Ciao,

quello che viene fatto e' un bit masking con il BIT0, ovvero quello d'interesse, per questo viene messo tutto il registro.
Se il bit si trovava nella seconda posizione avresti avuto BIT1...
Mettendo BIT0 controlli il bit ADC12IFG0.

Quando ADC12IFG0 vale 1, vuol dire che la misura e' pronta per essere letta.
Messa in and con BIT0 hai 1, che negato vale 0, quindi il l'attesa del while termina e si procede...

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
12 Anni 1 Mese fa #10 da Ross
Ok perfetto..nel mio caso credo sia necessario usare il timer con il dma perchè rischierei che il risultato della conversione successiva mi sovrascriva quella precedente e non riesca a completare la trasmissione...se utilizzassi una singola conversione ripetuta semplice senza nient altro penso che non riuscirei a ottenere buoni risultati...giusto ??
Grazie mille Mauro , sei sempre molto disponibile..
Saluti , Luca

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

  • Ross
  • Junior Member
  • Junior Member
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

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

Registrati al sito LaurTec.

Login