7d329109
pifou
PercTeacher progr...
|
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
53
54
55
56
57
58
59
60
61
|
//gestion des moteurs
void init_pins(void){
// pin 12 et 11
DDRB = PIN_MOTEUR_GAUCHE | PIN_MOTEUR_DROIT;
}
void pas_moteur_gauche(void){
// pin 12
PORTB |= PIN_MOTEUR_GAUCHE;
_delay_us(DELAI_STEP);
PORTB &= ~PIN_MOTEUR_GAUCHE;
_delay_us(DELAI_STEP);
}
void pas_moteur_droit(void){
// pin 11
PORTB |= PIN_MOTEUR_DROIT;
_delay_us(DELAI_STEP);
PORTB &= ~PIN_MOTEUR_DROIT;
_delay_us(DELAI_STEP);
}
//gestion de la liaison serie
void init_serial(int speed){
UBRR0 = CPU_FREQ / (((unsigned long int) speed) << 4) - 1; //Set baud rate
UCSR0B = (1 << TXEN0 | 1 << RXEN0); //Enable transmitter & receiver
UCSR0C = (1 << UCSZ01 | 1 << UCSZ00); //Set 8 bits character and 1 stop bit
UCSR0A &= ~(1 << U2X0); //Set off UART baud doubler
}
void send_serial(unsigned char c){
loop_until_bit_is_set(UCSR0A, UDRE0);
UDR0 = c;
}
unsigned char get_serial(void){
loop_until_bit_is_set(UCSR0A, RXC0);
return UDR0;
}
int main(void){
init_pins();
init_serial(SERIAL_BAUDE_RATE);
while(1){
unsigned char deltaL1 = get_serial();
unsigned char deltaL2 = get_serial();
unsigned char deltaR1 = get_serial();
unsigned char deltaR2 = get_serial();
// conversion 2x8 bits => 16 bits
|