Página de inicio Mi Correo






   » Foro
   » Nuevo Foro
   » Mi Correo
   » Mis Actividades...


--- Novedades ---



    
  » Microcontroladores » Interrupciones y Temporizaciones (15 de 15)  

.: Palabras Finales

Advertí que esto pondría de pelos...!!! a muchos, pero si estuviste siguiendo los tutoriales no te debería traer grandes problemas, Palabra mía...!!!, ya que estás en condiciones de comprenderlo fácilmente, a demás es sólo una cuestión de interpretación, y de paso vamos incorporando algunas cositas que todavía no habíamos visto, como ser los diagramas de flujo, los cuales son muy utilizados al momento de codificar, éstos evitan que te pierdas, al menos a mí me ayuda bastante...

Respecto a la simulación de todo este código con MPLAB, haré algunas aclaraciones, primero que nada, decirte que yo lo hice y con buenos resultados, pero oye...!!! no creas que me quedé a esperar que se cumplan los retardos jajaja... nooooo...!!! ni ahí... lo que hice, fue modificar los valores de los registros reg1 y reg2 y ponerlos a 1 para que la rutina termine rápido y continúe con lo que sigue.

Esto nunca lo hicimos, así que vamos... que te mostraré como hacerlo...

Primero que nada debes tener abierta File Registers Window, que se encuentra en el menú Window --> File Registers, y cuando estés corriendo el código y entres a la rutina de retardo lo detienes y verás algo como esto...

Si recuerdas el código, reg1 es 0C y reg2 es 0D, cuando detuve la ejecución reg2 quedó en F4, puesto que se estaba decrementando en la rutina de retardo, y reg1 se mantiene sin cambio y aún retiene el valor que le cargamos inicialmente, es decir FA, ahora vamos a modificar los valores de estos registros, así le engañamos a MPLAB para que crea que se decrementó bastante.

ok, haz un click con el botón derecho del mouse justo en FA y luego en File Register(s)

y allí te aparecerá un cuadro de diálogo en el que puedes ver justo en Address el registro que estás por modificar, en este caso 0c y en Data/Opcode el nuevo valor para ese registro en este caso 1 (este valor es el que estamos ingresando...!!!), tal como se ve en esta imagen...

Luego le das a Write (escribir) y habrás modificado el valor del registro 0x0C (reg1), para modificar reg2 (0x0D) repites la misma operación y finalmente te quedará así...

Ahora sí, le das a los zapatitos para ver que todo va correctamente y te ahorraste de esperar que llegue el invierno, jeje

Ni que hablar de la temporización de los 50 segundos, lo que hice allí fue verificar que la interrupción por TMR0 se produzca, que Reg2 decremente cuando esto ocurra y finalmente que Reg1 decremente cuando Reg2 se haga cero, observa que he utilizado los mismos registros en ambas temporizaciones, y no te afecta en nada ya que siempre están a cero si no se está ejecutando alguna de ellas.

Bien, el resto lo verifique grabando el programa en el pic y controlando el tiempo con un cronómetro para saber si realmente se cumplen los 50 segundos.

Por cierto, deberías tener un circuito entrenador si piensas seguir en este tren, ya es hora no crees...???, en la red hay muchos entrenadores de los que puedes disponer, uno más complejo que otro, yo me hice uno que por suerte me sirvió prácticamente para todos los proyectos que hice...

Creo que lo pondré en venta...!!!

:o))

Quizás ese sea el tema para la próxima actualización, escucharé propuestas...



R-Luis...

<-- Anterior   Introducción   Siguiente -->
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15
Tabla de Referencias


    
--| |--