Étape 7: Logiciel de contrôle
/ * Batterie électronique moins dé * // * Diakité gaignard * /
/ * 20 septembre 2007 * /
/ * Tiny13 processeur @ 128KHz oscillateur RC interne * /
/ * 7 LED connectées comme suit
LED0 - PB1
LED1, 2 - PB2
LED3, 4 - PB3
5, 6 - PB4
D2 D3
D5 D6 DE D0
D1 D4
Entrée d’impulsion de bobine est sur 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 count = 0 ;
DDRB = 0XFE ; / * PB0 est entrée * /
TCCR0B = 2 ; / * diviser par 8 * /
TCCR0A = 0 ;
TCNT0 = 0 ;
PORTB = 254 ; / * désactiver toutes les LEDs * /
while(1)
{
/ * attendre à impulsion pour aller haut * /
tandis que ((PINB & 0 x 01) == 0) ;
_delay_loop_2(50) ;
/ * attendre à impulsion pour aller bas * /
tandis que ((PINB & 0 x 01) == 0 x 01) ;
_delay_loop_2(50) ;
comte = 5000 ;
tandis que ((count > 0) & & ((PINB &0x01) == 0))
{nombre--;
}
if(Count ==0) / * aucun impulsion plus donc n’afficher un nombre aléatoire * /
{
PORTB = 0XFE ; / * toutes les LED off * /
_delay_loop_2(10000) ;
Temp = TCNT0 ;
Temp = temp %6 ;
Temp = pgm_read_byte (& ledcode[temp]) ;
PORTB = temp ;
}
}
}