Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Carlos2302 en 23 de Agosto de 2017, 19:52:46
Título: Ayuda amigos.
Publicado por: Carlos2302 en 23 de Agosto de 2017, 19:52:46
Amigos y compañeros, estoy empezando a estudiar el micro MSP430G2553, y estoy en la parte del ADC, estoy creando el siguiente codigo para hacer las practicas. #include <msp430g2553.h>
/* * main.c * P1OUT&=~BIT0; //apaga el LED */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
while(1){ int temp = ADC10MEM; ADC10CTL0 &=~ ADC10ON; /*Apagamos */ ADC10CTL0 &=~ ENC; //ADC10CTL0 &=~ ADC10SC; //no es necesario ya q al terminar la conversion se pone a 0 ADC10CTL0 |= ADC10ON|ENC|ADC10SC; //while(ADC10BUSY == 0) __delay_cycles(200);
}
} Al querer utilizar este ciclo //while(ADC10BUSY == 0) no me genera codigo para simular en proteus. Utilizo el Code Composer Studio 6. Mi me pueden ayudar les agradezco. Sabemos que quiero esperar a que ADC10BUSY == 0 pero no se porque no me funciona el codigo. No quiero utilizar la rutina de retardos pero no me queda de otra.
Título: Re:Ayuda amigos.
Publicado por: KILLERJC en 23 de Agosto de 2017, 20:12:41
Tenes un error seguramente.
Código: C
#define ADC10BUSY (0x0001) /* ADC10 BUSY */
De este archivo ( el .h del MSP ): http://web.eng.fiu.edu/watsonh/eel4730/Appendix/msp430g2553.h
entonces ese while queda como while( 0x1 == 0), por lo cual siempre nunca se cumpliria saltando el __delay que le sigue.
Por eso usan:
Código: C
while(ADC10CTL1 & ADC10BUSY);
Donde ADC10CTL1 es el registro y hace una AND con el ADC10BUSY que es la posicion que indica el bit.
Título: Re:Ayuda amigos.
Publicado por: Carlos2302 en 23 de Agosto de 2017, 22:19:45
Gracias por tu ayudad killerjc mañana voy a probar lo que me planteas. Ahora otra pregunta como hago para apagar dos bits de un registro al mismo tiempo por ejemplo estos dos: ADC10CTL0 &=~ ADC10ON; /*Apagamos */ ADC10CTL0 &=~ ENC;
Título: Re:Ayuda amigos.
Publicado por: KILLERJC en 23 de Agosto de 2017, 23:19:35
Asi:
Código: C
ADC10CTL0 &= ~( ADC10ON | ENC );
Título: Re:Ayuda amigos.
Publicado por: Carlos2302 en 24 de Agosto de 2017, 10:59:30
Killerjc gracias amigo por responder, yo lo estaba haciendo así solo que me estaba comiendo los ().