#include <avr/io.h>
#include <util/delay.h>
unsigned char aff_DDRB[8] = {0b1001,0b1010,0b1100,0b0101,
0b0110,0b0110,0b0011,0b0011};
unsigned char aff_PORTB[8] = {0b1000,0b1000,0b1000,0b0100,
0b0100,0b0010,0b0010,0b0001};
const int P100ms = 50000;
enum { Service_JG, Balle_vers_JD, Service_JD, Balle_vers_JG };
unsigned char ucEtat;
void affiche(unsigned char aff) {
DDRB = aff_DDRB[aff];
PORTB = aff_PORTB[aff];
}
void aff_score(unsigned char score) {
unsigned char ucI;
for(ucI=10;ucI>0;ucI--) {
affiche(score);
_delay_loop_2((uint16_t)P100ms);
PORTB = 15;
_delay_loop_2((uint16_t)P100ms);
int main (void)
{
unsigned char ucScore_D, ucScore_G;
unsigned char ucAffiche;
int iPause;
unsigned char ucBouton_D, ucBouton_G;
ucEtat = Service_JG;
ucScore_G = 0;
ucScore_D = 0;
iPause = P100ms;
ucAffiche = 7;
while (1) {
if (ucEtat == Service_JG) {
...(a completet?????)
ucBouton_G = PINB & 0b00010000;
...
}
....
if (ucEtat == Balle_vers_JD) {..???????....
}
if (ucEtat == Service_JD) {..??????...
}
if (ucEtat == Balle_vers_JG) {.......