Paso 12: Blinky, Blinky.
Ahora que hemos conseguido el Tiny2313 para poder encender el LED de encendido y apagado, comando, ¿qué más avanzadas las cosas? Ya que realmente no hemos entrado en un programa real (ese secreto que mencioné), no necesitamos darle un nuevo nombre de programa a BASCOM.
Volver a entrar en que declaración sobre la declaración de reset en el programa:
' Programa principal
establecer PortB.0 ' activar el LED
restablecer PortB.0 ' activar LED apagado
¿Esto parece ser correcto, correcto? El chip ' 2313 pondrá una señal de alto (+ 5V) en el pin PB0 y luego inmediatamente traer ese pin a tierra. ¿El + 5V causa electrones a fluir a través del LED, lo que es luz y luego la baja, o suelo, en PB0 hará que el LED ir, a la derecha?
Compilar su nuevo programa pulsando la tecla de función F7. Asegúrese de que no hay ningún error que se muestra en la parte inferior de su ventana de BASCOM y a continuación, abra la ventana de programador pulsando la tecla de función F4. Otra vez, envíe el programa compilado a la 2313 haciendo clic en la opción de autosintonización en el menú del Chip.
Su chip Tiny2313 inmediatamente ejecutará el nuevo programa, el LED de iluminación y luego inmediatamente dando vuelta atrás. ¿Verdad?
¿Qué? ¿Espere un minuto – lo que sucedió aquí? Parece que hay algo mal con el programa, ¿no? El LED no encenderá en todos. Si quieres ver el Tiny2313 vuelva a ejecutar el programa, pulsa el botón de reset debajo y a la izquierda del Tiny2313 la viruta sí mismo. El programa se almacena en el chip ' 2313 y el reset hará que el chip ejecutar el programa cada vez que se pulsa. ¿Todavía nada, sin embargo, la derecha?
Bueno, en realidad, la luz. Es solo ese trabajo de computadoras extremadamente rápidamente, y el Tiny2313 enciende el LED y entonces inmediatamente apagué detrás. Esto sucedió en sólo unas pocas millonésimas de segundo, demasiado rápido para los ojos notar el flash.
Si miras el manual de BASCOM AVR, que se ejecutará a través de una declaración llamada de espera. Esta declaración le dice a la computadora para hacer exactamente lo que dice. El parámetro, o el número, que escriba después de la instrucción de espera es el número de segundos que desea que el Tiny2313 para hacer una pausa, antes de continuar con el programa.
Vamos a arreglar nuestro programa. Entre el conjunto y la declaración de restablecimiento, introduzca una declaración de espera con un retraso de 1, así:
' Programa principal
establecer PortB.0 ' activar el LED
espera 1' pausa de 1 segundo
restablecer PortB.0 ' activar LED apagado
Compilar su nuevo programa pulsando la tecla de función F7. Asegúrese de que no hay ningún error que se muestra en la parte inferior de su ventana de BASCOM y a continuación, abra la ventana de programador pulsando la tecla de función F4. Otra vez, envíe el programa compilado a la 2313 haciendo clic en la opción de autosintonización en el menú del Chip.
Su chip Tiny2313 inmediatamente ejecutará el nuevo programa, el LED de iluminación y luego después de aproximadamente un segundo, vuelta. ¿Esta vez el programa funciona, correcto? Recuerde, la computadora hace exactamente lo que dices que. Si usted dice que haga algo demasiado rápido, entonces eso es exactamente lo que hará. Cuando dijiste que el Tiny2313 para encender el LED y entonces, es lo que hizo; sólo fue tan rápido que era bastante inútil a usted. Otra vez, si usted quiere ver el Tiny2313 vuelva a ejecutar el programa, sólo pulse el botón reset en el sistema de experimentador Tiny2313.
Ahora que el programa funcione correctamente, guardar su programa, antes de ir. (Un recordatorio más, haga clic en archivo y luego haga clic sobre guardar.)
Comenzar un nuevo programa haciendo clic en archivo y luego haciendo clic en guardar como... y el nombre del programa 03 prueba de LED. Cambie la línea de espera para: esperar 2, ¿qué creo que esto va a hacer? ¿Tratar de compilar este programa y descargarlo a tu tablero del experimentador (Presione la tecla F7 y luego la tecla F4 y haga clic en autosintonización) – no lo creías? El número, después de la instrucción de la espera, dice el controlador cuánto tiempo (en segundos) para esperar antes de continuar con la siguiente instrucción (la instrucción reset.) Este nuevo programa debe dejar el LED encendido durante unos dos segundos antes de volver a apagarlo.
Mientras que es útil para que el controlador espera para segundos, computadoras brillan realmente en hacer las cosas rápidamente. A veces necesitas tener tu pausa de control durante un período más corto de tiempo. Una declaración, que se relaciona con la declaración de la espera, que te permite mucho más control sobre los tiempos de retardo, es: waitms. Usted puede encontrar una descripción de la sentencia waitms en el manual, pero esto está parado "esperar un número especificado de milisegundos (o 1/1000ths de segundo.") Usas exactamente como lo haría la instrucción esperar, excepto que el tiempo viene dado en milésimas de segundo (waitms 1000 es lo mismo que espere 1.)
Jugar con el programa, sustituyendo la sentencia waitms para la instrucción de esperar. A ver que pasa con el LED parpadea. Intente reducir el tiempo de retardo; tratar de encontrar la menor demora que realmente se nota. El ojo humano promedio puede notar cosas que suceden en sobre 30 veces por segundo (o Hertz, que significa "por segundo"). Si una luz parpadea más rápido que el, su ojo no notará el parpadeo y dirá su cerebro que la luz es apagada o encendida. Este intermitente 30 Hertz (o 30 Hz) es igual a unos 33 m, o aproximadamente 16 ms y luego apagar. Ver qué tan cerca puede llegar a 16 ms antes de que aparezca el LED permanezca apagado. Sus ojos notarán y responden mejor si se baja la luz de la habitación o la luz se levanta; trate de encender la luz de la habitación apagada mientras se realiza este experimento.
Intente alargar la instrucción de pausa. Introduzca los números de alrededor de 2000 o 4000 y trate de usar un cronómetro para ver cómo exacta se puede obtener a partir del contador de tiempo y luego detenerlo. Usted no será capaz de llegar perfectamente, exactamente precisa, porque el tiempo de respuesta humana se mide en milisegundos. En otras palabras, desde el momento en que el ojo ve el LED Encienda, hasta que su cerebro le dice a los dedos Presione start en el cronómetro, hasta que el dedo hace el trabajo, llevará a varios cientos de milisegundos. Puede ser tipo de entretenido para ver qué tan cerca puede llegar al tiempo que introdujo en la instrucción de pausa.
Tener el Tiny2313 flash del LED puede ser tipo de diversión, pero todavía, una linterna puede hacerlo – otra vez, "pasos de bebé".