Escalas de analfabetismo personas (5 / 6 paso)

Paso 5: El código: completo código

Aquí añado el código completo como referencia. Fue escrito en BascomAVR pero debe ser bastante fácil de traducir a C o para arduino. Comentar la mayoría de los pasos pero por favor me si algo no es claro para usted.

$regfile = "m8def.dat" ' archivo de registro para el atmega8
$crystal = 8000000 8 megaciclos clockspeed
$baud = 1200 ' baudrate = 1200

' declaración de las variables
Dim cuenta como entero
syscount DIM como byte
Dim yo como byte
Dim temp como entero
Dim peso entero
Dim comm(4) como byte
Dim calc(3) como entero
Dim weightwanted como entero
Dim weightwantedram como entero ERAM ' almacenado en la EEPROM
Dim percentplus como byte
Dim percentplusram como byte ERAM ' almacenado en la EEPROM
Dim percentmin como byte
Dim percentminram como byte ERAM ' almacenado en la EEPROM
Dim topvalue como entero
Dim trámites como entero

«Pernos de la existencia de alias
Un Pind.2 de Alias
B Alias Pind.4
Alias rojas PORTD.5
Verde Alias PORTD.6
Amarillo Alias PORTD.7

' Dirección de los pines
Configuración A = entrada

Configuración B = entrada
Portd.3 config = entrada
Config portd.5 = salida
Config PORTD.6 = salida
Config PORTD.7 = salida

config serialin = tamponada, tamaño = 18, bytematch = 10 18 bytes intermedia y activa interrupción en la recepción de un LF

' configuración de la pantalla LCD
config Lcdpin = Pin, Db4 = Portc.3, Db5 = Portc.2, Db6 = Portc.1, Db7 = Portc.0, E = Portc.4, Rs = Portc.5
Config Lcd = 16 x 2
cursor apagado

' establecer ciertos pines 1
Set B
Set pind.2
Set pind.3

' configuración de las interrupciones externas
config Int0 = aumento
De Int0 Getencoder

Config int1 = caída
en el menú de int1

Habilitar interrupciones
Habilitar la Int0
Permiten int1

CLS ' borrar pantalla

Restablecer cuenta
Peso de RESET
Syscount RESET

' bucle principal
hacer

Seleccione caso syscount ' según syscount se seleccionará una pantalla para la pantalla lcd

waitms 25

CLS ' borrar pantalla

caso 0: ' pantalla principal
weightwanted = weightwantedram ' Lee estas 3 variables en la EEPROM y los almacena en variables globales
percentplus = percentplusram
percentmin = percentminram
localizar 1,1 ' escribe los datos deseados en la pantalla lcd
LCD weightwanted; "Gr"
Localice 1, 8
LCD "-"; percentmin; " %"
Localice 1, 13
LCD "+"; percentplus; " %"
localizar 2,1
peso del LCD; "Gr"
reiniciar Red ' apaga todos los LEDs
restablecer verde
restablecer amarillo
topvalue = weightwanted * percentplus ' cálculo de todos los valores necesarios.
topvalue = topvalue / 100
topvalue = weightwanted + topvalue
trámites = weightwanted * percentmin
trámites = trámites / 100
trámites = weightwanted - trámites
Si peso < = topvalue y peso > = trámites luego Green y ' establece el LED de estado correcto
Si peso > topvalue establezca amarillo
Si peso < trámites luego set rojo

caso 1: "pantalla de configuración del peso

localizar 1,1
LCD "configuración:"
localizar 1,8
LCD "Peso"
weightwanted = count ' Lee el codificador rotatorio y establece el peso deseado
localizar 2,8
LCD weightwanted

caso 2: "pantalla de configuración del sobrepeso

localizar 1,1
LCD "configuración:"
localizar 1,8
LCD "+ %"
percentplus = count ' Lee el codificador rotatorio y el sobrepeso se establece
localizar 2,8
LCD percentplus

caso 3: "pantalla de configuración del peso inferior al normal
localizar 1,1
LCD "configuración:"
localizar 1,8
LCD "-%"
percentmin = count ' Lee el codificador rotatorio y establece el peso insuficiente
localizar 2,8
LCD percentmin

final seleccione

loop ' fin de bucle principal

GetEncoder: ' desencadenada por INT0. Lee el movimiento de rotación del codificador rotatorio

waitus 250
Si A = 1 entonces
Si B = 0 entonces Incr cuenta cuenta de Decr otra cosa
End If
GiFr = 64 ' debounce
Volver

menú: ' desencadenada por INT1. Lee el pulsador del codificador rotatorio

syscount incr ' aumenta syscount. Esta variable se utiliza para decidir qué pantalla se muestra
Si syscount > 3 entonces syscount = 0
Seleccione caso syscount
caso 0: percentminram = percentmin ' escribe en la EEPROM
caso 1: cuenta = weightwanted
caso 2: weightwantedram = weightwanted ' escribe en la EEPROM
cuenta = percentplus
caso 3: percentplusram = percentplus ' escribe en la EEPROM
cuenta = percentmin
final seleccione

waitms 150
GiFr = 128 ' debounce

volver

serial0charmatch: ' activa la interrupción serial
peso = 0 ' reinicia variables
para i = 1 a 3
Calc(i) = 0
siguiente

para i = 1 a 18 ' Lee los bytes necesarios en las variables y los otros bytes para vaciar el buffer de las descargas
Si i = 9 entonces comm(1) = inkey()
Si i = 10 then comm(2) = inkey()
Si i = 11 then comm(3) = inkey()
Si i = 12 entonces comm(4) = inkey()
Si me <> 9 y me <> 10 ya <> 11 y yo 12 temp entonces <> = inkey()
siguiente

para i = 1 a 4 ' traducir de ascii a Dic
Si comm(i) > 47 entonces
COMM(i) = comm (i) -48
otra cosa
COMM(i) = 0
terminar si
siguiente

Si comm(1) > 0 then calc(1) = comm (1) * 1000 ' hace que 1 número fuera de 4 caracteres
Si comm(2) > 0 then calc(2) = comm (2) * 100
Si comm(3) > 0 then calc(3) = comm (3) * 10
peso = calc(1) + calc(2)
peso = peso + calc(3)
peso = peso + comm(4)

volver
final

Artículos Relacionados

MJOLNIR Mk. V (Pepakura Halo armadura)

MJOLNIR Mk. V (Pepakura Halo armadura)

este es mi encargo armadura Spartan de Halo reachPuesto que hay muchos tutoriales de pepakura ahi, probaré y seguir el tutorial muy básico y en su lugar agregar consejos y atajos que he encontrado al crear la armadura. Para ahorrar espacio no detallo
Drywall Arch

Drywall Arch

Este es un proyecto de convertir una puerta de cojinete de carga no existentes en un arco. Copié un arco existente, por lo que me salvéPaso 1: Encontrar una puertaEn esta foto hay una arcada original (izquierda) y una puerta que fue bloqueada por pan
Trampa para ratones auto con motor de

Trampa para ratones auto con motor de

este proyecto es de mi próximo libro, Que hace mover las cosas.  En él, vamos a usar la energía que un muelle de torsión puede almacenar para alimentar un coche pequeño. Refieren a esta figura principal como paso a través de la receta para construir
Gratis Stealth Piano Banco de trabajo

Gratis Stealth Piano Banco de trabajo

crear su propio espacio de Stealth atractivo y funcional para su apartamento!  Este proyecto resuelve el dilema de no tener suficiente espacio de trabajo en un piso o en otro lugar en el que un banco de trabajo fea vería fuera de lugar.Soy un DIY'er
GARABATOS 4 DUMMIES: Estructura humana

GARABATOS 4 DUMMIES: Estructura humana

materiales necesitados; Lápiz, borrador, marcador/lápiz negro* = Ligeramente dibuja lo que sigue. Esto se piensa para hacer futuro borrado más fácil y su proyecto final más hermoso.Paso 1: Paso: 1 Paso 1: * dibujar 7 círculos, verticalmente hacia aba
Cambiando espacios: Esbozar rápidamente propuestas arquitectónicas

Cambiando espacios: Esbozar rápidamente propuestas arquitectónicas

si hay un lugar existente o un espacio en su área que usted piensa que debe cambiar, puede producir un cuadro de tu idea para que otra gente puede entenderla. Una buena fotografía podría interesar a otras personas, y sin darte cuenta, su idea podría
Drone depredador personal

Drone depredador personal

Este papel de piel convierte tu mini quadcopter en un Drone Predator de General Atomics MQ-1 en cuestión de minutos (aproximadamente 20 de impresión a volar).Esto es una continuación de mi otro instructivo, que construyó una piel para hacer un mini q
Construcción de una escala de 1:1 Portal Gun con luces

Construcción de una escala de 1:1 Portal Gun con luces

Introducción:Este Instructable detallará el proceso pasaba por construir mi propio Dispositivo Handheld de Portal Aperture Science [AKA la "Portal Gun"] de los juegos de válvula Portal y Portal 2. Aunque la pistola de portales es el foco princip
Deslice la regla usando escalas de registro común y Natural

Deslice la regla usando escalas de registro común y Natural

Las reglas de diapositiva que llevaron a los hombres a la luna fueron hechas sin ordenador, así que estas instrucciones se basan en producción computerless. Hay libros en existencia que contienen las escalas de registro necesario sin necesidad de uti
Escalera de estantería

Escalera de estantería

una viejo deformada escalera restaurada y convertida en algunas estanterías para la industria buscando.He querido algunos industriales buscando estanterías para mi oficina, no tengo interés en las cosas de aspecto nuevo.He encontrado todos los materi
Vertical zapato Rack - Peg Board escalera

Vertical zapato Rack - Peg Board escalera

Bienvenido a mi medida, estante del zapato que construí en mi garaje. Con mal olor, zapatos mojados o sucios es un burdon que todo el mundo tiene que lidiar con. Teníamos montones de zapatos en diferentes salas, en los armarios y sótanos. Decidí que
Cómo construir una escalera Jacob con cuchillos

Cómo construir una escalera Jacob con cuchillos

PELIGRO!!!! ESTE PROYECTO INVOLUCRA OBJETOS PUNZANTES, ALTO VOLTAJE Y TENSIÓN QUE PUEDE CAUSAR LESIONES GRAVES O LA MUERTE. EXISTE LA POSIBILIDAD ÚNICA QUE PODRÁ CORTAR Y ELECTROCUTAR A SÍ MISMO AL MISMO TIEMPO. SE RECOMIENDA PRECAUCIÓN EXTREMA.No so
Paso de la escalera de estilo EZ

Paso de la escalera de estilo EZ

Ahora con Video!Bienvenido al instructable sobre cómo construir un paso de la escalera de estilo EZ-paso .Construí este otro para un cliente de la sociedad de América del norte de Tetra. Compruebe hacia fuera algunas ideas del proyecto neat.El client
Estante de pared escalera horizontal

Estante de pared escalera horizontal

Ya ha pasado un tiempo, pero estoy con otro instructivo! Esta vez con una escalera de mano montado de pared práctico!Surgió esta idea después de ver una foto en mi Facebook news feed con una pequeña escalera montada en una pared. Yo pensé, ¡ qué cool