ATtiny Cronógrafo (6 / 8 paso)

Paso 6: código. Finalmente.

Bien, ahora estamos finalmente listos para cargar el código real. Sólo copie y pegue este código en el IDE. Luego, ir a la línea 13, donde el pgt se establece en 250000. Cambio los 250000 a 1000000 / (12 / distancia) donde la distancia es la distancia entre los agujeros de la última etapa. No utilice decimales, redondo al número entero más cercano.

Boolean ts;
int value01 = 0; valor //the en las décimas
byte value10 = 0; //value decenas lugar
anaval largo sin firmar; //value en el lugar
valor de byte = 0; / / prueba de valor que se mostrará
const int val = 40; el retraso
larga temp;
Boolean extra10; //these están justo donde queremos que los decimales
extra1 booleano;
Boolean extra;
tiempo largo sin firmar; //the micros() valor en el momento de interrupción
lasttime largo sin firmar;
unsigned int pgt = 250000; el número de 3 pulgadas entre photogates. Si este número se muestra, significa que hubo un error, y no intervalo de tiempo se registró.
calcula como 1000000/(12/distanceininches). da salida en ft/seg
no utilizar flotadores para ahorrar espacio (hay muy poco en el 2313)
void setup() {}
DDRB = B11111111; //sets puerto B de salida (pines más a la izquierda)
DDRD = B1110000; //sets los 3 pines que cambie los dígitos hacia fuera, todos los demás que en.
DDRA = B000; Si se utiliza un oscilador externo, no se líe con un puerto, que es reset y oscilador.
PORTD = B0001111;
PORTA = B000;
attachInterrupt (1, stv, levantamiento); //we sólo quiere interrumpir en la primera puerta, no nos importa el segundo todavía.
}

void loop() {}
istobig (); //these tres sólo el número de la salida. La sincronización se realiza en las interrupciones
divide();
SendOut();
}
void stv() {//starts tiempo y une el correcto interrumpir
tiempo = (micros); //if cambias el código, este siempre debe estar en el mismo orden que stopv(). De lo contrario, la diferencia entre romper la puerta y el tiempo de grabación diferente y así estropear el resultado.
attachInterrupt (0, stopv, RISING); //set uno para el otro pin de interrupción
detachInterrupt (1); //and apague éste, hasta que el otro interrpt
}
void stopv() {}
lasttime = (micros); //this debe ser la misma operación y en el mismo lugar como time=micros() arriba.
anaval = pgt / (abs(lasttime-time)/10); //do la matemática para obtener ft/seg
attachInterrupt (1, stv, levantamiento); //reattach la interrupción para iniciar el temporizador,
detachInterrupt(0); y este uno.
}

void istobig() {//checks si el número es demasiado grande. Si es así, reduce en consecuencia. (por un factor de 10);
Temp = anaval;
Si (temp > 1000) {}
extra = 1;
Temp = temp/10;
} else {}
extra = 0;
}
Si (temp > 1000) {}
extra1 = 1;
Temp = temp/10;
} else {}
extra1 = 0;
}
Si (temp > 1000) {}
extra10 = 1;
Temp = temp/10;
} else {}
extra10 = 0;
}}
{} void divide()
value01 = temp; //sets décimas entre 0 y 900
valor = temp/10; //sets los entre 0 y 90
value10 = temp/100; //sets decenas entre 0 y 9
valor = int (valor); //rounds las variables
value10 = int(value10);
value01 = int(value01);
value01 = value01 - (valor * 10); //removes todos menos el dígito de las décimas-lugar
valor = valor - (value10 * 10); //removes de todo pero el lugar de los dígitos
}
void sendout() {}
extra * = 4;
PORTD = B0001111;
Temp = value01;
Output();
PORTD = B1001111;
delayMicroseconds(val);
extra = extra1 * 4;
PORTD = B0001111;
Temp = valor;
Output();
PORTD = B0101111;
delayMicroseconds(val);
extra = extra10 * 4;
PORTD = B0001111;
Temp = value10;
Output();
PORTD = B0011111;
delayMicroseconds(val2);
sin retardo necesario, la matemática toma bastante tiempo
}
void output() {portB //sets basado en el número que aparecerá
{Switch(Temp)}
caso 0:
PORTB = B00000101 - extra; adicional agrega un punto decimal.
rotura;
caso 1:
PORTB = B11011101 - extra;
rotura;
caso 2:
PORTB = B01000110 - extra;
rotura;
caso 3:
PORTB = B01010100 - extra;
rotura;
caso 4:
PORTB = B10011100 - extra;
rotura;
caso 5:
PORTB = B00110100 - extra;
rotura;
caso 6:
PORTB = B00100100 - extra;
rotura;
caso 7:
PORTB = B01011101 - extra;
rotura;
caso 8:
PORTB = B00000100 - extra;
rotura;
caso 9:
PORTB = B00011100 - extra;
rotura;
}}

Artículos Relacionados

Estación de Audio y cronógrafo Steampunk

Estación de Audio y cronógrafo Steampunk

gracias a todos de sus diseños muy creativos y proyectos, todos ustedes me han inspirado a crear mi propio Steampunk Audio y estación de cronógrafo.  Este proyecto me llevó WAAAY más tiempo del previsto y pasó a manera de presupuesto, pero una vez ca
Paintball/balísticos Cronógrafo

Paintball/balísticos Cronógrafo

crear un cronógrafo de Paintball bajo costo menos de $ 40!Un cronógrafo balístico es un dispositivo que registra la velocidad de un proyectil. Este cronógrafo particular que he hecho ha sido probado solamente con una pistola de paintball y es relativ
Airsoft o pistola de aire (u otro proyectil lanza dispositivo) Cronógrafo utilizando un micrófono

Airsoft o pistola de aire (u otro proyectil lanza dispositivo) Cronógrafo utilizando un micrófono

mi primera crítica Instructable, constructivo Bienvenido.Si tienes un rifle o cualquier otro dispositivo de disparo del proyectil que usted necesita o quiere Cronógrafo las opciones son bastante limitadas. Puede encontrar una persona que tiene un cro
Cronógrafo para cañón de aire

Cronógrafo para cañón de aire

Cronógrafo consiste de un sensor montaje y temporizador de caja que puede utilizarse para medir la velocidad del bozal de un proyectil disparado desde un cañón de aire.Había construido esta configuración para el uso con un cañón de aire grande con un
Cronógrafo de AVR desde el concepto de PCB

Cronógrafo de AVR desde el concepto de PCB

un cronógrafo es un dispositivo utilizado para medir la velocidad de un objeto de paso.  En forma más simple, se trata de dos sensores de algún tipo que 'vea' el objeto, un dispositivo que puede medir el tiempo, y alguna salida para entregar los dato
Cómo utilizar mi método de cronógrafo a ROF

Cómo utilizar mi método de cronógrafo a ROF

si no lees mi método chronographing leerla { antes de continuar.En este instructable mostrará usted cómo adaptar el método de chronographing para dar aproximado velocidad de disparo de un rifle automático.Se necesita:1. una pistola de airsoft2. una c
Pobre hombre Cronógrafo airsoft.

Pobre hombre Cronógrafo airsoft.

Si usted cada airsoft jugado en un campo, o incluso con cuidado amigos saben la importancia de tener una pistola que dispara a un nivel adecuado de FPS (pies por segundo). Hoy voy a mostrar cómo hacer un FPS áspero de la lectura de una lata de soda.P
Energía libre de la nada!

Energía libre de la nada!

«Energía libre desde el aire?, sí, correcto!» Sardónico escepticismo fue mi primera reacción a este concepto inusual.Sin embargo, no hasta ahora, de hecho. La luz se puede convertir en DC actual con paneles solares, electricidad se puede convertir en
Dulce manchado un regulador de Paintball.

Dulce manchado un regulador de Paintball.

Antes de empezar: esto es sólo mi interpretación e interpretación de cómo dulce su regulador. Otros pueden tener diferentes metodologías.Comprensión manchado dulce:Martillo cónico marcadores usan alguna manera o ram para golpear el vástago de una vál
Potente arco desmontaje de esqui alpino

Potente arco desmontaje de esqui alpino

este arco se hace de un par de esquís de descenso de Fischer.  Tira 58# a 28".  La base está hecha de nogal y nuez y está recubierta por un acabado de poliuretano satinado.  La cadena se hace de paracord con bowlines.  Esto se sustituirá por una cuer
Coilgun Handgun

Coilgun Handgun

Aprende a hacer una coilgun simple con solamente algunas piezas que son bastante fáciles de obtener. Estar dispuestos a gastar más de una semana en esto y puede que necesite algunas herramientas de la energía pesada (sólo para hacer buenos proyectile
Bobina de pistola - circuito disparador óptico

Bobina de pistola - circuito disparador óptico

diseñé esta pistola de bobina disparo circuito óptica, se utiliza en conjunción con y IR led y Transistor de la foto de IR montado en el barril.   Cuando se dirige un proyectil por el cañón tan pronto como pasa a través de la viga activará la bobina
Recurvado moderno de esquís!

Recurvado moderno de esquís!

Esto es mi Instructable primera, bien, cualquier cosa. Yo he estado construyendo arcos de tubo de PVC hace casi dos años y después de ver este instructable por Yoshinok, estaba realmente inspirada para tratar de construir uno de madera y esquís la pr
Cal.50 pistola de bobina

Cal.50 pistola de bobina

después de construir un pequeño 6mm pistola de bobina decidió que era el momento de lujo... A un. 50cal...Video en YouTube de él en acción.Esto significa un banco de capacitores más grande del régimen e igualmente interruptores de estado sólido grand