Reloj de Apple bricolaje (2 / 10 paso)

Paso 2: Creación de prototipos y archivos!

Si desea construir el proyecto de este paso no es demasiado necesario. Voy a hablar sobre cómo funcionan el código y hardware.

Voy a pasar ahora por el código línea por línea :D

ATtiny24, 44, 84 serie sólo tiene 1 interrupción externa (INT0) [Página 48 de la hoja de datos]. Se trata de la interrupción que estamos más familiarizados con el uso de la Arduino. Puede utilizar esta interrupción simplemente diciendo "attachInterrupt()"

Mientras que sólo tenía 1 interrupción, quería tener dos botones en mi reloj: un botón para aumentar el tiempo y otro para disminuir el tiempo. Mirando hacia atrás en la hoja de datos, el ATtiny tiene dos puertos de Interrupción de cambio de Pin : PCINT0 y PCINT1 [Página 48].

La diferencia Externa interrumpe Interrumpe el cambio de Pin es que una interrupción externa tiene su propio ISR (rutina de servicio de interrupción). PCINTerrupts compartir un ISR para todos los pines en un puerto. Esto significa que con Pin cambio interrumpe podemos hacer cualquier perno ser una interrupción, pero luego tenemos que pasar por el problema de determinar qué pin causó la interrupción en el puerto.

Aquí hay dos muy buenos artículos para leer. Se trata de cómo aprendí:

Cada una de estas variables determina lo que el número se muestra en cada uno de los cuatro dígitos en la pantalla de burbujas.
Les declaré volátil porque cambiaron en las rutinas de interrupción.
Ajuste a 0 significa cuando enciendo mi reloj, la cuenta comenzará a las 00:00 (12:00 AM).

Pernos físicos 8(A5), 9(A4) y 10(A3) se utilizará con el 74HC595 shift registro.
El registro de desplazamiento permite a control los segmentos a, b, c, d, e, f, g y dp con pernos Q0, Q1, Q2, Q3, Q4, Q5, Q6 y Q7 respectivamente.
Para mostrar cada dígito, se ser multiplexado.

La burbuja es cátodo común. Esto significa que cuando el dígito es conectado a tierra o tiró para un bajo digital, la cifra se ilumina. Estaremos usando pernos de físicos 13(A0), 12(A1), 11(A2) y 7(A6) para controlar la visualización de cada dígito en la pantalla de burbujas.

Estos son algunos valores que utilizaremos a debounce los dos botones cuando la interrupción se activa. Sin contra rebotes, una pulsación puede ser registrado como cinco, y utilizando el reloj sería molesto.
Compruebe hacia fuera el Arduino ejemplos/Digital/Debounce si quieres.

Arduino puede contener variables de largo. Utilizaré las variables largo currentMillis y lastMillis leer millis(); Después de 49 días, el valor de millis() conseguirá demasiado grande para el microcontrolador y el desbordamiento a 0.
Esto es algo malo si estoy comparando currentMillis y lastMillis a debounce y el valor de currentMillis se convierte en 0. Voy a explicar un poco más adelante.

Inicialización de algunas cosas. secTime es el contador de segundos y tictoc determina si el punto o no cada segundo.

En la función de configuración, yo declarando los pernos de registro cambio y multiplexación pines como salidas

La siguiente es cómo inicializar la interrumpe el cambio de Pin.
CLI(); es una función que debemos llamar para desactivar las interrupciones.

GIMSK es el Registro General de interrumpir la máscara, un registro sobre el ATtiny. Revisa la hoja de datos para mirar lo que hace cada bit del registro GIMSK en la página 51.
0b00110000 activa los bits 4 y 5 en el registro, que encienda PCIE0 y PCIE1. PCIE0 permite interrumpe el cambio de Pin del puerto que tiene pernos de 0 a 7. PCIE1 permite interrumpe el cambio de Pin por la parte que tiene los pines 8 y 11.

PCMSK0 es el Pin cambio habilitar máscara para los pernos de 0 a 7. Se activa de PCIE0. Quiero habilitar una interrupción en PCINT7 o A7 en el ATtiny44.
Para ello activar bit 7: 0b10000000 [Página 53]

PCMSK1 es igual a PCMSK0 excepto los pines 8 y 11. Se activa de PCIE1. Quiero habilitar una interrupción en PCINT10, o pin 8.
Para ello, habilitar el bit 2: 0b00000100 [Página 52]

SEI(); activa las interrupciones.

Display() es una función que voy a explicar en el siguiente paso. Lo hace solo lo que piensa que lo hace.

El soporte de código cambia básicamente el punto en pantalla 2 siempre en segundo lugar para simular tics y TOC.
Básicamente, cada 1000 milisegundos, el código comprueba si el tictoc es 1 o 0. Si es 0, el punto se enciende y tictoc se establece en 1. Si es 1, se desactiva el punto y establece tictoc a 0.
los + 10 y -10 harán sentido después
En este soporte es también un incremento de secTime, que cuenta cuántos segundos han pasado.

Si secTime alcanza 60, aumentamos dig4 (minutos)

Lo siguiente si lazos básicamente determinan cuándo se desborda el dígito y debe ser reajustado. Por ejemplo, si tenemos 9 en dig4, el siguiente debe ser 0 y dig2 debe ser incrementado en 1.

Si dig1 (decenas de horas) es 2 y dig2 (horas unos) es 4, reajustar el reloj a las 00.

{ISR(PCINT0_vect)} es la rutina de interrupción que se ejecuta cuando se activa PCINT0 por pin A7.
Esta función ajusta básicamente secTime 0 y dig4 decrementos de 1.
El siguiente si lazos básicamente manejar desbordamiento.
La función entera es envuelto por un if debouncing lazo.

{ISR(PCINT1_vect)} es la rutina de interrupción que se ejecuta cuando se activa PCINT1 por pin 8.
Esto básicamente hace lo mismo que la otra interrupción salvo incremento en lugar de disminuir.

Esto es lo que está pasando en el bosquejo de WATCHG.ino. Para mantenerse organizado, hice otro dibujo ShiftDatas.ino algunas variables y funciones. En el siguiente paso va pasar.

Artículos Relacionados

BRICOLAJE - el nuevo reloj de Apple

BRICOLAJE - el nuevo reloj de Apple

En este video muy simple se muestra cómo crear su propio reloj de Apple.Hágalo usted mismo!
Soporte de la noche del reloj de Apple y USB Hub Encaser

Soporte de la noche del reloj de Apple y USB Hub Encaser

Todo niño tiene algunos Legos en casa, no importa grande o pequeño.Cuando él o ella creció para arriba, ésos viejo tiempo juguetes favoritos terminaron en una caja en el armario, donaron a las necesidades, etc..Cada geek de la computadora tiene algun
Reloj de Apple

Reloj de Apple

Ser la envidia de todos tus amigos como el primer para poseer un reloj de apple. Este elegante reloj nunca necesita actualizaciones y a decir la hora por lo menos dos veces al día.Este reloj saludable es seguro para impedir que la gente en sus pistas
Reloj de Apple II

Reloj de Apple II

CUPERTINO, California, 09 de septiembre de 1984 - Apple Computer Inc.® ha presentado hoy Apple / / reloj™, su dispositivo más personal alguna vez. Apple / / reloj presenta un diseño revolucionario y una interfaz de usuario de BASIC creado específicam
Cómo cambiar su banda de reloj de apple

Cómo cambiar su banda de reloj de apple

El reloj de Apple es un accesorio imprescindible para cualquiera que tenga un iPhone.Y con la popularidad del dispositivo portátil smart sigue en aumento, personas están buscando maneras más que coincida con su reloj de Apple con lo llevas o qué even
Cómo hacer un reloj de Apple

Cómo hacer un reloj de Apple

Se trata de la mejor manera de conseguir un reloj de apple.Aquí son las cosas que necesitas:1. un coche2. las pilas3 Arduino4 smarts5. el dinero6. gasPaso 1: paso 1Obtener en su cochePaso 2: Ir a la tienda de applecomprar un reloj de applePaso 3: Pas
Controlar Arduino desde tu dispositivo iOS y su reloj de Apple

Controlar Arduino desde tu dispositivo iOS y su reloj de Apple

Este instructable simple es sobre Administrador de Arduino, un iOS de propósito general potente aplicación que permite para controlar cualquier Arduino (o Arduino compatible) tablero por medio de 30 Widgets diferentes.Algunos de los Widgets disponibl
Reemplazar una batería de reloj de Apple IIGS

Reemplazar una batería de reloj de Apple IIGS

si usa un Apple] [has probablemente ha notado que el ajuste del reloj y la configuración del Panel de Control se pierden cuando se apaga. Eso es porque estos ajustes se almacenan en un chip SRAM volátil, que requiere alimentación para conservar los d
Reloj de nixies bricolaje usuario-ajustable simple

Reloj de nixies bricolaje usuario-ajustable simple

Como primer instructivo del año he conseguido finalmente terminar mi proyecto de reloj nixie de larga edad.Nixies son tubos de neón válvula, donde diez cátodos tienen forma de dígitos y están iluminadas por plasma cuando el alto voltaje fluye a travé
Reloj de pared bricolaje mesa de billar.

Reloj de pared bricolaje mesa de billar.

me encanta la piscina y todo lo relacionado con la piscina. Y por eso hice esto! Me volví una mesa de billar de juguete de los niños en un reloj de pared, usando las bolas como los números que indica la hora. ¿Por qué no jugarlo en su lugar? También
Apple reloj Lego soporte

Apple reloj Lego soporte

El día que llegó mi reloj de Apple me di cuenta que necesitaba un soporte de carga. Que enseguida se hizo cargo de él y uno de Legos. He estado usando este soporte desde abril y funciona muy bien.Mi característica favorita del stand es que el reloj d
Apple reloj correa de cuero

Apple reloj correa de cuero

Mi amigo Mat y yo hacer cuero DIY kits, así que cuando él consiguió un reloj de Apple para la Navidad, supongo que lo que hicimos?!Hay toneladas de grandes Instructables en hacer proyectos de cuero con herramientas tradicionales - de aquí que nos met
Reloj personalizado de Apple soporte de carga

Reloj personalizado de Apple soporte de carga

Construí este reloj de Apple y iPhone cargador para mi amigo. Se utilizan plástico UHMW y nogal. Resultó mejor de lo esperado!Paso 1: Cortar las piezas a la medida Me arrancó la nuez en la sierra y cortar el plástico UHMW (polietileno de ultra alto p
Pimientos reloj holográfico en minutos!

Pimientos reloj holográfico en minutos!

Ver todos el teléfono inteligente de holograma construye como esta:Me hizo pensar en hacer algo similar pero para mi reloj inteligente. Esto sólo le llevará unos pocos minutos con una impresora 3D y una caja vieja de CD. Yo lo llamo el accesorio relo