×
MSP430, Microcontrollori 16 bit Ultra Low Power
come si utilizza l' adc del micro msp430 ??
12 Anni 3 giorni fa #46
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: come si utilizza l' adc del micro msp430 ??
Ok se usi anche il flag IF.
La tensione che vari alimenta anche il microcontrollore?
Non dovrebbe essere cosi.
Vss e' 0V.
Saluti
La tensione che vari alimenta anche il microcontrollore?
Non dovrebbe essere cosi.
Vss e' 0V.
Saluti
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Mauro Laurenti
- Moderator
Riduci
Di più
12 Anni 3 giorni fa #47
da Ross
Risposta da Ross al topic Re: come si utilizza l' adc del micro msp430 ??
Nono è separata..non capisco perchè fa cose strane da 1,6 v... il programma che mi avevi inserito col bit busy chissà perchè si blocca..sembra esatto..
Saluti
Luca
Saluti
Luca
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Ross
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 28
- Ringraziamenti ricevuti 0
12 Anni 2 giorni fa #48
da Ross
Risposta da Ross al topic Re: come si utilizza l' adc del micro msp430 ??
Ciao Mauro..ho fatto una modifica al programma che ti avevo inviato per adattarlo al caso con 4 sensori e quindi 4 tensioni da convertire..sembra esatto ma mi si blocca sul ciclo while e non si muove da lì...come mai ?? mi puoi dare una risposta ??
void adc4prova(void)
{
risultati[0] = 0;
risultati[1] = 0;
risultati[2] = 0;
risultati[3] = 0;
WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer
P6SEL = 0x0F; // Enable A/D channel inputs
ADC12CTL0 = ADC12ON+ADC12SHT1_2; // Turn on ADC12, set sampling time
ADC12CTL1 |= ADC12SHP+ADC12CONSEQ_2; // Use sampling timer,
ADC12MCTL0 = ADC12INCH_12; // ref+=AVcc, channel = A12
ADC12MCTL1 = ADC12INCH_13;
ADC12MCTL2 = ADC12INCH_14;
ADC12MCTL3 = ADC12INCH_15+ADC12EOS;
ADC12CTL0 |= ADC12ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conv - software trigger
__delay_cycles(1000);
while (!(ADC12IFG & BIT3)); // I bit 15-0 flag di interrupt ADC12MEMx.
__no_operation(); // SET BREAKPOINT HERE
__delay_cycles(1025);
risultati[0]= ADC12MEM0;
risultati[1]= ADC12MEM1;
risultati[2]= ADC12MEM2;
risultati[3]= ADC12MEM3;
}
Saluti Luca
void adc4prova(void)
{
risultati[0] = 0;
risultati[1] = 0;
risultati[2] = 0;
risultati[3] = 0;
WDTCTL = WDTPW+WDTHOLD; // Stop watchdog timer
P6SEL = 0x0F; // Enable A/D channel inputs
ADC12CTL0 = ADC12ON+ADC12SHT1_2; // Turn on ADC12, set sampling time
ADC12CTL1 |= ADC12SHP+ADC12CONSEQ_2; // Use sampling timer,
ADC12MCTL0 = ADC12INCH_12; // ref+=AVcc, channel = A12
ADC12MCTL1 = ADC12INCH_13;
ADC12MCTL2 = ADC12INCH_14;
ADC12MCTL3 = ADC12INCH_15+ADC12EOS;
ADC12CTL0 |= ADC12ENC; // Enable conversions
ADC12CTL0 |= ADC12SC; // Start conv - software trigger
__delay_cycles(1000);
while (!(ADC12IFG & BIT3)); // I bit 15-0 flag di interrupt ADC12MEMx.
__no_operation(); // SET BREAKPOINT HERE
__delay_cycles(1025);
risultati[0]= ADC12MEM0;
risultati[1]= ADC12MEM1;
risultati[2]= ADC12MEM2;
risultati[3]= ADC12MEM3;
}
Saluti Luca
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Ross
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 28
- Ringraziamenti ricevuti 0
12 Anni 6 Ore fa #49
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: come si utilizza l' adc del micro msp430 ??
Salve Luca,
il consiglio e' quello di avere un esempio di un canale funzionante e da quello ti muovi avanti. ora che provato diverse soluzioni ricontrolla la user Guide e rivedi il capitolo dell'ADC risultera' sicuramente piu' chiaro. Non ti fermare ai soli bit.
Con il simulatore puoi anche controllare il valore dei registri ADC12MEMx e vedere se effettivamente contengono il valore analogico previsto.
Non ho l'header file sottomano e non sono certo dei bit settati con ADC12CONSEQ_2 (single siquence o repeated single channel).
Dividi e conquista.
Saluti,
Mauro
il consiglio e' quello di avere un esempio di un canale funzionante e da quello ti muovi avanti. ora che provato diverse soluzioni ricontrolla la user Guide e rivedi il capitolo dell'ADC risultera' sicuramente piu' chiaro. Non ti fermare ai soli bit.
Con il simulatore puoi anche controllare il valore dei registri ADC12MEMx e vedere se effettivamente contengono il valore analogico previsto.
Non ho l'header file sottomano e non sono certo dei bit settati con ADC12CONSEQ_2 (single siquence o repeated single channel).
Dividi e conquista.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.