Paso 7: Software de Control
/ * Batería electrónica menos dados * // * Dhananjay Gadre * /
/ * 20 de septiembre de 2007 * /
/ * Tiny13 procesador @ KHz 128 internos oscilador RC * /
/ * 7 LEDs conectados como sigue
LED0 - PB1
LED DE 1, 2 - PB2
LED DE 3, 4 - PB3
LED5, 6 - PB4
D2 D3
D5 D6 DE D0
D1 D4
Entrada de pulsos de la bobina está en PB0
*/
#include < avr/io.h >
#include < util/delay.h >
#include < avr/interrupt.h >
#include < avr/pgmspace.h >
[] const char ledcode PROGMEM = {0xfc, 0xee, 0xf8, 0xf2, 0xf0, 0xe2, 0xfe};
Main()
{
unsigned char temp = 0;
int cuenta = 0;
DDRB = 0XFE; / * PB0 es entrada * /
TCCR0B = 2; / * divida por 8 * /
TCCR0A = 0;
TCNT0 = 0;
PORTB = 254; / * desactivar los LEDs * /
while(1)
{
/ * esperar pulso ir alto * /
mientras que ((PINB & 0 x 01) == 0);
_delay_loop_2(50);
/ * esperar pulso ir baja * /
mientras que ((PINB & 0 x 01) == 0 x 01);
_delay_loop_2(50);
cuenta = 5000;
mientras que ((cuenta > 0) & & ((PINB &0x01) == 0))
{cuenta--;
}
if(Count ==0) / * ausencia de pulso más así mostrar un número al azar * /
{
PORTB = 0XFE; / * todos los LEDs apagados * /
_delay_loop_2(10000);
Temp = TCNT0;
Temp = temp 6 %;
Temp = pgm_read_byte (& ledcode[temp]);
PORTB = temp;
}
}
}