domingo, 1 de noviembre de 2015

XiuaElectronics: Curso de XC8 y MPLABX

Curso de MPLABX y XC8 #03: Manejo de Retardos [Tiempos en Led]. 

Bien, para iniciar con el tercer capitulo del curso de programación en C con MPLABX y el compilador XC8, les recomiendo ver los capítulos anteriores siguiendo el siguiente LINK.

Ya vistos los anteriores capítulos y una vez teniendo todos los software necesarios procederemos a explicar de que tratara esta clase.
Primero que todo hay que saber que los tiempos en programación para los microcontroladores pic son muy reducidos y dependen de un cristal para su funcionamiento, aunque en unos casos se pueda trabajar con un cristal interno, en este curso se trabajará con un cristal externo; para saber más acerca de los cristales en los microcontroladores pic visita el siguiente LINK.

Ya sabiendo que función cumple un cristal en un microcontrolador, y sabiendo que los tiempos en los micros son muy reducidos lo que vamos a hacer es crear una rutina que nos multiplique el tiempo; para programar u tiempo o retardo en un programa con XC8 se hace de la siguiente forma:

__delay_ms(X);         ========>  Donde X es el tiempo en milisegundos
__delay_us(X);          ========>  Donde X es el tiempo en microsegundos
__delaywdt_ms(X);    ========>  Solicita un retraso X en milisegundos
__delaywdt_us(X);     ========>  Solicita un retraso X en microsegundos

Bien, pero por que no hay en segundos?
Sencillo! lo que sucede es que los retardo funciona con ciclos, y cada familia de microcontroladores tiene un número máximo de ciclo que puede usar, por ejemplo:

Familia Pic16  ========> 50.462.464 ciclos
Familia Pic18  ========> 197.120 ciclos

Entonces para saber cual es el tiempo máximo que podemos utilizar en nuestro delay debemos utilizar la siguiente formula:

Tcy * Ciclos Max. = Tiempo Máximo

Donde tcy = 4*(1/FOSC).
Donde Ciclos = Varia entre las familias.

Por ejemplo si necesitamos saber cual es el tiempo máximo soportado por el pic18f2550 con un cristal de 20Mhz se haría de la siguiente forma:

Tcy = 4*(1/20)= 0.2Tcy
Ciclos = 197.120 para la familia pic18

Entonces:
Tiempo Max = 0.2 * 197.120 =  39.424 milisegundos.

Ya que sabemos esto, necesitamos una formula la cual nos sirva para hacer retardos mayores de estos 39 ms. esta formula se explicara en el siguiente vídeo tutorial.


  



Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!


NOTA:
 se les recuerda a los lectores que se utilizo la versión del compilador XC8 Versión 1.34 la cual trae las peripheral libraries incluidas en él; el pdf de estas lo pueden encontrar en la parte de etiquetas del blog en la etiqueta llamada Documentación.

Cualquier duda, trabajo, tutoria personalizada, etc por correo.

Correo: poncho.blas@hotmail.com

Bien muchachos, esto es todo por hoy; esten pendiente en mi canal, o de mi blog o de mi pagina de facebook.

Facebook: https://www.facebook.com/electronicalibrexc/
Youtube:  http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR

Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!

Cualquier duda, trabajo, tutoria personalizada por correo electronico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/



Salu2...

No hay comentarios.:

Publicar un comentario