-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcodeC.cpp
53 lines (48 loc) · 1.54 KB
/
codeC.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
* Nom: compteur 32 bits
* Copyright (C) 2005 Matthew Khouzam
* License http://www.gnu.org/copyleft/gpl.html GNU/GPL
* Description: Ceci est un exemple simple de programme
* Version: 1.1
*/
#include <avr/io.h>
#define CPU_F 8000000
#include <util/delay.h>
int main()
{
DDRA = 0xff; // PORT A est en mode sortie
DDRB = 0xff; // PORT B est en mode sortie
DDRC = 0xff; // PORT C est en mode sortie
DDRD = 0xff; // PORT D est en mode sortie
unsigned long compteur=0; // le compteur est initialise a 0.
// c'est un compteur de 32 bits
/*
for(;;) // boucle sans fin
{
compteur++; // incremente le compteur
// si le compteur est 0xffff ffff il revient a 0
PORTD = compteur; // PORTD = 8 bits de large,
// il prend les bits de 0 a 7 du compteur
PORTC = compteur >> 8; // PORTC = 8 bits de large,
// il prend les bits de 8 a 15 du compteur
// en faisant un decallage de 8 bits.
PORTB = compteur >> 16; // PORTB = 8 bits de large,
// il prend les bits de 16 a 23 du compteur
// en faisant un decallage de 16 bits.
PORTA = compteur >> 24; // PORTA = 8 bits de large,
// il prend les bits de 24 a 31 du compteur
// en faisant un decallage de 24 bits.
}
*/
for (;;)
{
PORTD = 0xE;
PORTC = 0x01;
_delay_ms(10);
PORTC = 0x02;
_delay_ms(5);
PORTC = 0x00;
_delay_ms(1000);
}
return 0;
}