¿Cómo generar un segundo en un pic?
| #1 ¿Cómo generar un segundo en un pic? |
| #2 |
|
aiken
Invitado
|
No se bien que es el RTCCS, pero un método con el cuál si se generaban un seg. era mediante el empleo del Timer0.
El tiempo a ingresar se conoce mediante la siguiente fórmula: Tiempo=4*T(oscialador)*(Cuenta*Escala+2) TMR0=256-Cuenta En tiempo estableces el tiempo que quieres que cuente el Timer, en Escala es la preescala que puedes seleccionar en el Option Reg. Al ser un segundo tendrás que hacer un bucle ya que se desbordará antes el Timer. Otra forma que puedes realizar,es mediante un bucle en la que primero miras cuantas instrucciones vas ha emplear y de hay sacas el tiempo que tarda en realizarlas el pic, antes del bucle creas unos registros en los que almacenas el tiempo necesario para realizar esas intrucciones, el llenado de estos registros entraran dentro del bucle, despues los vas descontando, primero uno, cuando llegue a cero quitas uno a otro registro y rellenas el anterior y vuelves a descontar hasta cero, vuelves a quitar otro al segundo, y asi sucesivamente, espero haberme explicado bien, si eso me dices. Un saludo. |
|||||||||||
|
|
||||||||||||
| #3 |
|
Diederick
|
Mira sucede que estoy haciendo el programa en c la parte que debo modificar es la siguiente:
char const RTCCxS=15; // Número de RTCC's (interrupciones para obtener un segundo) para 1 segundo con 4 Mhz / 1:256. El 15 hace referencia a que con un cristal de 4 MHz se deben hacer 15 interrupciones con un prescaler de 1:256, de ésta manera: 66.6 ms * 15= 999 ms (casi un seg). Pero al hacer el montaje, cuando pongo un cristal de 20 MHz, porque obviamente está programado para 4 M; el reloj corre muy rapido, entonces necesito saber cuantas interrupciones con un prescaler de 1:256 se deben programar para que funcione perfecto con un cristal de 20 M y de ésa manera el contador incremente en tiempo real. Hay una página dónde tratan de explicar eso pero no entiendo muy bien como ajustan las interrupciones: http://picmania.garcia-cuervo.com/Conceptos.php#CristalyTime Si llegas a entender algo de lo que hay en ese link, agradecería tu respuesta... Un saludo gracias..... |
|||||||||||
|
|
||||||||||||
| #4 |
|
Manonline
|
no se absolutamente nada sobre pics, ni sobre nada... pero mi sentido comun dice que RTCC debe ser 75 (regla de tres simple)
4MHz________15 20MHz_______x 20MHz x 15 / 4MHz = 75 no se... supongo, pero no cuesta nada probar... |
|||||||||||
|
|
||||||||||||
| #5 |
|
f_point
|
Excelente observacion la de Manonline... todos necesitamos mas sentido comun
Por otra parte, si no te molesta tomar una alternativa relativamente simple, y deseas una exactitud muy pero muy razonable, puedes usar el siempre confiable Timer2. El modulo Timer2 del PIC16F877A es extremadamente simple y permite generar bases de tiempo con una buena gama de valores de division de reloj posibles. Una solucion para generar 1s con el Timer2 seria: Frecuencia de entrada al Timer2: Fosc/4 = 20MHz/4 = 5MHz Seleccion de valores: PR2 = 249 (hace sobreflujo cada 250 ciclos) Valor de Prescaler: 16 Valor de Postscaler: 10 Luego, la frecuencia a la que Timer2 hace interrupciones seria: F = 5MHz / (250 * 16 * 10) = 125Hz Asi, para generar un segundo exacto, deberas esperar 125 interrupciones. No es nada dificil configurar el modulo Timer2 para ello, en serio. La unica parte dificil es manejar las interrupciones, que segun veo, ya tienes resuelto. A lo mejor eso te sirva. Saludos. |
|||||||||||
|
|
||||||||||||
| #6 |
|
Diederick
|
gracias por la respuesta...voy a probar el micro con las diferentes opciones que ustedes me dan....os comentaré una respuesta apenas obtenga los resultados sean buenos o malos....si alguien tiene otra opción bienvenida sea....
Un saludo.. |
|||||||||||
|
|
||||||||||||
|
| Temas de interés | |
|---|---|
| Generar ruido blanco | |
| Generar audio con PIC | |
| Generar Señal de Video con PIC | |
| Como generar un ejecutable .EXE en TURBO C | |
| Generar senales que afecten amplificadores de audio | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.09893 segundos, Consultas = 13
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
Generada en = 0.09893 segundos, Consultas = 13

