Paso 4: Conocer tus límites de mcu y conectar el pulsador de grabación
ADVERTENCIA!!: antes de usted ir más lejos es necesario saber que todo mcu tiene límites en cuánto corriente que pueden suministrar y fregadero. Fuente actual es cuánto corriente sale el pin y va en algunos dispositivos externos. Disipador de corriente significa que la corriente fluye en el pin y a través de la mcu a tierra (Vss en este caso). Los límites para el BS2 son los siguientes (comprobar el básico sello sintaxis y referencia "Manual", página 14, cuadro 1.2): cada pin puede hundirse 25 mA y fuente de 20 mA. Cada grupo de pernos, P0 - P7 y P8 - P15 si no colectivamente más de 50 mA o mA fuente 40 si se utiliza un regulador externo de V 5. Esos números son fregadero 50 mA o mA fuente 40 para todos los pines I/O si se utiliza el regulador de V 5 a bordo.
SI EXCEDE ESTOS LÍMITES, DAÑARÁS TU MCU!!!!!! A veces pierdes a un pin de I/O pero peores cosas podrían suceder. Esto significa que usted necesita usar la ley de su Ohm, V = IR.
Usted probablemente ha notado en este punto que los botones de grabación y el pote de tempo en la P15 y P14, respectivamente y el resto de los pines de entrada-salida. Esto es debido a la información proporcionada en el aviso anterior.
En el espectáculo:
El botón de grabar tiene que estar conectado. Conectarse un cable puente de P15 PB0 en la sección pulsador si usas una PDB. Si no entonces conectar un NOPB como se muestra en el esquema a continuación. Esto también pasa a ser la forma en la PDB sus pulsadores cableados excepto puede conectarse en el AP, no sólo P15.
Mira la imagen para ver:
Puede ver el cable verde que forma un arco a través de la placa sin soldadura de P15 a PB0 en el PDB.
Para obtener el botón funcione probablemente utilizará el comando del botón. Mi instrucción es el siguiente:
BOTÓN recBtn, 0, 255, 0, btnData, 1, grabar
Compruebe el "sello de sintaxis y referencia Manual básico" para una explicación completa. Aquí, recBtn es el pin #, 0 es el sur del estado, 255 es el retardo, 0 es la velocidad, btnData es el espacio de trabajo, 1 es TargetSate y registro es la dirección. El recBtn es de 15 para P15 y 255 se utiliza porque no quieren una repetición automática, pero todavía quiere el debounce. Tasa es 0 porque no quiero que cualquier medición de ciclos. Dio btnData sólo un Byte de espacio variable porque los números de deben ser más bajos de todos modos. La TargetState es 1 porque quiero que el botón para activar el BS2 en modo de grabación cuando todavía se presiona. Ajuste a 0 haría ir a registro de cuando fue lanzado. La dirección es récord. Es la subrutina que se activa cuando se pulsa el botón.
Aquí es un primer punto a la práctica de técnicas de programación. No tienes que escribir todo el código acabado de una vez aquí. La subrutina registro podría ser apenas uno o dos declaraciones de depuración. Hacerlo le dirá que su instrucción de botón trabajado y envió el BS2 modo de grabación. Si intenta escribir todo su código a la vez y a menudo se sienten frustrados debido a los problemas que deban ordenarse primero.
Artículo un) escribir una sola instrucción de depuración tales como:
«Usted está en modo de grabación» de depuración
Artículo b) agrega una segunda y quizás una tercera declaración como sigue:
¿DEBUG? potFreqVal
¿DEBUG? potTempoVal
C del artículo) cuando veas las palabras adecuadas se muestran en la Terminal de depuración usted sabe que usted está en modo de grabación pero también sabes que el programa está utilizando las variables de las dos macetas tienes para la frecuencia y ritmo. Ahora puede trabajar en conseguir el resto del modo de grabación para trabajar, asegurándose que las frecuencias Haz colocadas en su arreglo.
Para este paso decidí utilizar una serie de declaraciones IF ELSEIF. La parte difícil es conseguir un buen rango establecido y hacer que Expresiones booleanas de los tienen los números correctos para cada nota. Decidí usar solo un comparador para cada expresión en lugar de utilizar dos.
Un comparador: <>, que están parados para menores y mayores que respectivamente
Dos comparadores: < =, > = que reposar de menos o igual que y mayor que o igual a respectivamente
Usé un comparador como pensé que tardaría un poco más para evaluar la expresión con dos comparadores frente a un comparador.
Tenga en cuenta que en la versión final del programa siempre que hay tres rangos de notas contenidas en tres subrutinas. Usted necesitará el código necesario después de las declaraciones IF ELSEIF para tomar el valor de la frecuencia clasificada y jugar para poder escuchar las notas que seleccionan girando el potenciómetro. Si esperas para incluir esas declaraciones dudo que la subrutina registro funcionará como estaba previsto. Para los dos primeros rangos de declaraciones IF ELSEIF, la instrucción ELSEIF pasada contiene una instrucción para ir al siguiente rango de notas utilizando el comando GOSUB Subroutine_Name.
Tenga en cuenta que la instrucción del botón se utiliza en el segundo (de tres) veces aquí. Esto permite que la persona Presione el botón en cualquier momento y tener la salida del programa el modo de grabación y el interruptor en modo de reproducción. En realidad, el BS2 realmente funcionará a través de todo el código secuencial antes de llegar a la instrucción del botón así que tendrás que esperar brevemente antes de que el cambio suceda.
Consejo importante: Hay algunas funciones disponibles con el IDE de sello Editor básico que usted debe familiarizarse con el uso. Dos muy útiles son la comprobación de la sintaxis y el mapa de memoria. Lo digo aquí porque cuando escribí las declaraciones IF ELSEIF anidado que me enteré de sólo puede tener 16 declaraciones ELSEIF además la apertura instrucción IF. Utilizando el mapa de memoria esto trajo a mi atención. La sintaxis comprobar hará lo mismo. Si tienes más luego se mostrará al utilizar estas funciones. Memoria del mapa nos útiles para averiguar cuánto espacio variable ha dejado. También le permite saber cuánto más espacio tienes que escribir código. Sintaxis es buena para ejecutar antes de intentar ejecutar el programa. Le permitirá saber rápidamente si cualquier sintaxis está fuera de servicio sin el tiempo extra gastado tratando de acceder a la mcu. Una vez que te pasas bastante tiempo programación mcu podrá apreciar ambas funciones.