Paso 5: Programación y código
Usé un programador como el USBtiny. No dude en utilizar lo que tengas disponible. Creo que se puede utilizar un arduino como ISP si no tienes un programador AVR práctico. No veo en el código de arduino o incluso si el arduino puede programar de attiny13. Me imagino que puede muy bien aunque.Conectar el programador para que coincida con la configuración en el paso anterior.
Se necesita el archivo .hex (os adjunto lo en el archivo .zip por lo que se puede descargar). O usted puede también compilarlo usted mismo si desea modificar el código. Si no sabes qué software utilizar, siempre puede utilizar el software de Atmel Studio 6 gratis.
Básicamente, el código utiliza XOR flip / flop el estado del LED. Elige el que condujo a flip basado en un módulo número aleatorio 3. Esta manera LED puede estar en el mismo tiempo y cada uno tiene su propio azar en. Se hace un flip / flop decisión cada segundos x donde x es otro número al azar. Sé que es inútil, sino también descompone la semilla cada vez que coloca. Así que todavía utiliza el mismo al azar número cada vez que consigue encendido. Una manera mejor sería leer una entrada del pin 3 o 2 (PB3 o PB4, respectivamente).
El código es bastante sencillo:
#include < avr/io.h >
#include < util/delay.h >
#include < stdlib.h >
int Main
{
DDRB = 1 << PB0;
DDRB | = 1 << PB1;
DDRB | = 1 << PB2;
PORTB = 0;
int n;
while(1)
{
n = ((n+57) * 13) % 10057;
srand(n);
int r = rand () %3;
Si (i == 0) PORTB ^ = 1 << PB0;
Si (i == 1) PORTB ^ = 1 << PB1;
Si (i == 2) PORTB ^ = 1 << PB2;
int r3 = rand () % 10;
para (int t = 0; t < r3; t ++) {_delay_ms(75);}
}
return 0;
}