Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

08/07/2011 #1

Avatar de Ediolot

Duda con pequeño programa
Bien, estoy programando el PIC16F628A en mplab x y este es el codigo inicial:



#include <htc.h>


__CONFIG(WDTDIS & LVPDIS & INTIO);


int main (void) {

PR2 = 0xFF; //periodo de PWM
CCPR1L = 0b10000000; // MSb
CCP1CON = 0b00001111; //LSb
TRISB = 0b11110111; // CCP1 pin como salida
T2CON = 0b00000100; //Postcaler 1:1 Prescaler 1:1 activa Timer2

while (1)

return 0;
}


Se trata de simplemente controlar una salida PWM, en el programa aplico un valor en CCPR1L y CCP1CON para el porcentaje del ciclo.

Ademas despejando veo que con esta formula obtengo un valor que es el porcentaje del ciclo que está en alto:

Porcentaje en alto = (10-bit de resolución) * ( 100 / 4(PR2+1))

En mi caso:

Porcentaje en alto = (10000000) * ( 100 / 4(255+1)) = 50

Tengo un 50% en alto.




Cuando ejecuto el programa en un simulador, veo que efectivamente empieza a funcionar bien con el 50%, pero despues de unas decenas de ciclos se para y se queda en estado bajo y no entiendo porque ocurre.

Cambie el código y obtuve el siguiente:

#include <htc.h>


__CONFIG(WDTDIS & LVPDIS & INTIO);

int main (void) { //50%

while (1) {

PR2 = 0xFF; //periodo de PWM
CCPR1L = 0b10000000; // MSb
CCP1CON = 0b00001111; //LSb
TRISB = 0b11110111; // CCP1 pin como salida
T2CON = 0b00000100; //Postcaler 1:1 Prescaler 1:1 activa Timer2

}


return 0;
}

Hice que repitiera la acción de escribir todos los valores, y efectivamente funciona, pero no me parece demasiado bien arreglado.

¿Podeis explicarme porque el primer código no funcionó bien?


Otra duda. El segundo código si funciona en el simulador, pero despues cuando escribo en el PIC y lo ejecuto no hace literalmente nada.

¿Sabeis por qué?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.