ChronosMEGA; un reloj de pulsera (5 / 16 paso)

Paso 5: Software con Asamblea

El flujo de la lógica del SW para el reloj se muestra arriba. Programación se realizó enteramente en Asamblea, implementar las características de interrupción, ADCs, administración de energía, GPIO y temporizador del ATmega328P. Las razones que elegir que Asamblea para mi lenguaje de programación fue para optimizar mi programa lo mejor podía y ya mí orgullo en el trabajo más difícil, bajar los niveles para proyectos.

5.1. primer prototipo

Un sistema de desarrollo que aproximadamente emulaba el ChronosMEGA final fue construido para implementar el SW que funcionaría en el reloj. La fuente de alimentación del reloj fue creada por separado en un PCB fabricado Diseñé y fue utilizado para alimentar el circuito. Esta unidad fue luego incrustada al producto final.

A continuación se muestra un video que muestra el circuito de protoboard:

5.2. interrupciones

Hay 4 rutinas de interrupción diferentes para el ChronosMEGA: uno para la hora + y MIN + botones, uno para el sueño y botones de la pantalla, uno para el Timer2 comparar partido y el último para el Timer1 comparar partido.

El módulo del Timer2 de 8 bits está programado para contar 10ths de segundo asincrónica del sistema. Cuando cuentas un 10 de un segundo interrumpe y aumenta el 10 de un segundo valor.

Se utiliza el módulo Timer1 de 16 bits se apague en 5 segundos cuando el usuario presiona el botón de tiempo de pantalla para ver la hora. Cuando este temporizador interrumpe, se apaga la pantalla y el ChronosMEGA vuelve a su estado inactivo.

5.3. power Management y modo Sleep

Una meta grande era hacer tan eficiente como sea posible, con una batería 400mAh grande el ChronosMEGA, el reloj tiene la capacidad de durar un tiempo muy largo en una sola carga. Con el proyecto terminado, el ChronosMEGA dibuja un desinteresado 4 microamperios en su reposo y se calcula que hace 11 años con una sola carga.

La ChronosMEGA pistas todavía tiempo en esta etapa del sueño, despertándose sólo para incrementar el contador de segundos y al pulsar un botón. El reloj del sistema se detiene completamente, y sólo el módulo del Timer2 con su cristal de 32,768 kHz asíncrono sigue funcionando.

Cuando el usuario presiona el botón "Sleep", el programa establece una marca y se apaga la pantalla LED. En el bucle principal, el programa comprueba la bandera del sueño y comienza a dormir preparaciones si es 0 x 01. Abajo se encuentra el bucle principal:


Los registros de sueño se establecen antes del bucle principal para entrar en modo "Ahorro de energía" estableciendo el SM [2:0] bits en 0b011. Modo "Ahorro de energía" apaga el ATmega328P pero permite el Timer2 seguir funcionando siempre y cuando sea asincrónica. Compara partido y las interrupciones externas se despertarán el ATmega328P temporalmente, con el fin de la rutina de interrupción del servicio y volver a dormir si es necesario.

5.4. una cuestión de variación y parpadeo de LED

Después de subir el programa inicial a la ChronosMEGA, noté algunos débil parpadeo en algunos de los LEDs cuando no debían para estar. Esto me molestó y llegué a la conclusión de que debe haber algo mal con mi convenios de programación que causó el problema.

La fuente del problema fue descubierta cuando observan la pila durante simulaciones y notó que mi propósito general registros no fueron ser empujado y extraen de la pila, así despeinarte mi proceso. Esto fue solucionado presionando registros en la pila cuando se llama a una rutina de servicio de interrupción, y estallidos los registros cuando se acaba la rutina. A continuación se muestra un ejemplo de interrupción:


Cuando se llama a la función "IncSec10", la pila aparece como a continuación:


Finalizada la "IncSec10", se extraen los registros hacia atrás por la pila de restaurar su valor original.

Artículos Relacionados

Reloj de pulsera solo tubo de Nixie en 2

Reloj de pulsera solo tubo de Nixie en 2

Hace unos años descubrí Nixies y me compraron un reloj Nixie de 4 dígitos, no pasó mucho tiempo antes de que yo también quería hacer un reloj de pulsera con un Nixie.Después de mucho tiempo navegando por internet para un diseño de reloj simple se me
Walkie-Talkie reloj de pulsera

Walkie-Talkie reloj de pulsera

Bien, siempre he querido hacer un walkie-talkie reloj de pulsera para emular a los comunicadores en Mighty Morphin Power Rangers. Mi interés ha sido rejuvenecido recientemente después de encontrar un apoyo de comunicador de Power Rangers fresco y por
Cómo activar el modo de timbre en el reloj de pulsera digital

Cómo activar el modo de timbre en el reloj de pulsera digital

el reloj hará un pitido largo cada hora. Para recordar el momento.Paso 1: requisitos Un modo de campana de reloj de pulsera digital viable.CerebroPaso 2: Imágenes siga Press mode 2 timesPulse st/stp 3 vecesPulse mode otra vezPaso 3: Boom Tienes modo
Platos reloj de pulsera

Platos reloj de pulsera

rayar discos es cargas de la diversión, incluso si no eres un turntablista. ¿Usted no desea que podría caer phat beats y scratch donde quiera que vayas? Bueno, ahora usted puede; DJ Hero con giradiscos de reloj de pulsera!Utilizando 2 tarjetas regist
Construir o modificar un reloj de pulsera! Un gran regalo o simplemente para ti!

Construir o modificar un reloj de pulsera! Un gran regalo o simplemente para ti!

¿Cansado del aburrido funcionamiento las fábrica de relojes de pulsera? Hazte una! Impresionar a alguien especial o hacer uno por sí mismo. Barato y fácil. Todo lo que necesita es un reloj de pulsera rota o de trabajo, un reloj digital de donantes y
Reloj de pulsera de

Reloj de pulsera de

Este instructable le ayuda a hacer hermosa y joyería atractiva cadena de su reloj a bajo costo.Paso 1: Elementos necesariosGranos blancos grandesPequeños granos de color oroHilos recubiertos de oroBloqueo de reloj de pulsera de oroDial del relojPaso
Cómo hacer una correa de reloj de pulsera reciclada

Cómo hacer una correa de reloj de pulsera reciclada

en este instructable te enseñaré sobre cómo hacer una correa de las correas del bolso de la basura y cerraduras para la correa de su reloj de pulsera que ha dañado... esto es la correa de mi reloj parecía como, (la correa de cuero original).Paso 1: M
3D impreso reloj de pulsera (que casi funciona)

3D impreso reloj de pulsera (que casi funciona)

Aquí está una breve instructivo de cómo hice mi reloj de pulsera impresa 3D.Para empezar este instructable requieren un movimiento de reloj analógico, deseo fue posible imprimir a una resolución que permita mecanismos de reloj impresionante como este
Reloj de pulsera pavo real

Reloj de pulsera pavo real

me encontré con un reloj de pulsera con dial de este pavo real hermoso. Lo compró; quitar la correa del dado; jugó con algunos granos.
Cara de corteza de abedul para reloj de pulsera

Cara de corteza de abedul para reloj de pulsera

¿Ha recibido aburrido de la misma cara en reloj de pulsera? ¿Nunca pensé que podría hacerlo mejor? Bien, la más fácil de lo que piensa. Este instructables te mostrará cómo hacer una cara de reloj de corteza de abedul, un maravilloso material natural
Costumbre, funcionamiento reloj reloj de pulsera TJT2/6

Costumbre, funcionamiento reloj reloj de pulsera TJT2/6

reloj de pulsera de reloj de sol precisa este es viaje de tiempo herramienta 2 de 6. Heráclito describe como un río corriendo hacia nosotros. ¿impresoras 3D de la velocidad por el río, pero a qué velocidad? Las herramientas del momento nos ayudan a c
Reloj de pulsera de cuentas

Reloj de pulsera de cuentas

tengo una gran idea que reemplace mi vieja pulsera reloj de cuero. Es una venda de reloj de pulsera de perlas con cierre de cinta. La hebilla de la cinta hace que se vea tan femenino. ¿Estás de acuerdo?Hay 21 pasos para crear esta banda reloj de puls
Reloj de pulsera de matriz de puntos de Arduino DIY

Reloj de pulsera de matriz de puntos de Arduino DIY

Relojes de pulsera son impresionantes y de lujo accesorios de moda para hombres y mujeres. Los fabricantes siempre gustan usar algo diferente. Mi reloj de pulsera de arduino diy de matriz de puntos es el resultado final después de trabajar un mes. El
Microdot - reloj de pulsera reloj LED modelo

Microdot - reloj de pulsera reloj LED modelo

producción otro RGB Sunset producciones!Este proyecto es un circuito para hacer una versión de tamaño reloj de muñeca de mi reloj minipunto:con unas cuantas funciones más más aplicables a un dispositivo portátil. Un montón de ayuda y sugerencias prov