44 lines
No EOL
1.2 KiB
C
Executable file
44 lines
No EOL
1.2 KiB
C
Executable file
/*
|
|
* tutoriel.c
|
|
*
|
|
* Created: 29/01/2021 09:13:18
|
|
* Author : yboujon1
|
|
*/
|
|
|
|
#include <avr/io.h> // necessaire pour l'acces au reg IO
|
|
#define F_CPU 3686400 //nous specifions la fréquence du processeur
|
|
#include <util/delay.h> //bibliotheque necessaire pour le delai en millisecondes
|
|
#define V1R2 ~0x81 //on defini chaque pattern de leds donné dans le tp
|
|
#define O1R2 ~0x41
|
|
#define R1R2 ~0x21
|
|
#define R1V2 ~0x24
|
|
#define R1O2 ~0x22
|
|
#define R1R2 ~0x21
|
|
|
|
void seconde(char x); //fonction qui fait attendre x secondes
|
|
|
|
int main(void)
|
|
{
|
|
DDRB = 0xFF; //sortie
|
|
DDRA = 0x00; //entree
|
|
char tabsec[6]= {2, 4, 2, 15, 4, 2}; //on defini chaque cycle en secondes
|
|
char tabfeu[6]= {V1R2, O1R2, R1R2, R1V2, R1O2, R1R2}; //on defini le pattern de chaque led
|
|
while (1)
|
|
{
|
|
int i;
|
|
for(i=0;i<6;i++) //on repete 6 fois l'action en fonction des valeurs du tableau
|
|
{
|
|
PORTB=tabfeu[i]; //on affect un pattern en fonction de sa valeur dans le tableau
|
|
seconde(tabsec[i]); //on attends x secondes en fonction de la durée du cycle défini dans le tableau
|
|
};
|
|
};
|
|
}
|
|
|
|
void seconde(char x)
|
|
{
|
|
int y;
|
|
for(y=0;y<100*x+1;y++)
|
|
{
|
|
_delay_ms(10);
|
|
}
|
|
} |