Blame view

site/fichiersRPI/Build/libretour/libretour.c 1.39 KB
a29bfd49   grouille   MAJ Git
1
2
3
  #include <avr/io.h>
  #include <avr/interrupt.h>
  #include <util/delay.h>
b64d3ca7   lahouass   Envoi de la tempe...
4
  #include <string.h>
b64d3ca7   lahouass   Envoi de la tempe...
5
  #include <stdlib.h>
a29bfd49   grouille   MAJ Git
6
7
8
  #include <stdio.h>
  
  
b64d3ca7   lahouass   Envoi de la tempe...
9
10
11
12
  #define PRESCALER 1024
  #define TIME_SLOT 20
  #define BAUDRATE	103
  
a29bfd49   grouille   MAJ Git
13
  //// INIT SERIAL /////
b64d3ca7   lahouass   Envoi de la tempe...
14
15
16
17
18
19
20
21
22
  
  void init_serial(void)
  {
  	/* ACHTUNG : we suppose UBRR value < 0xff */
  	/* Not true in all case */
  	uint8_t baudrate = BAUDRATE;
  	/* Set baud rate */
  	UBRR0H = 0;
  	UBRR0L = baudrate;
a29bfd49   grouille   MAJ Git
23
  	
b64d3ca7   lahouass   Envoi de la tempe...
24
25
26
27
28
29
  	UCSR0B = (1<<TXEN0);
  	/* Set frame format */
  	UCSR0C = 0x06;
      
  }
  
a29bfd49   grouille   MAJ Git
30
31
  //// ENVOI DE MESSAGES /////
  
b64d3ca7   lahouass   Envoi de la tempe...
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
62
63
64
65
66
67
  void send_serial(unsigned char c)
  {
  	loop_until_bit_is_set(UCSR0A, UDRE0);
  	UDR0 = c;
  }
  
  
  void send_msg2(char Donnee[]){
   
      while (( UCSR0A & (1<<UDRE0))  == 0){};
              
              for (int i = 0; i < strlen(Donnee); i++){ 
                  while (( UCSR0A & (1<<UDRE0))  == 0){};
                  UDR0 = Donnee[i]; 
                  if (i == (strlen(Donnee) - 1)){
                      send_serial('\n');
                      send_serial('\r');
                  }
              } 
  }
  
  void send_msg(char Donnee[]){
          int i=0;
        for(i=0; i<strlen(Donnee); i++){
            if (i==strlen(Donnee)-1){
                send_serial(Donnee[i]);
                send_serial('\n');
                send_serial('\r');
          }
            else{
                send_serial(Donnee[i]);
          } 
          _delay_ms(100);
          }
  }
  
a29bfd49   grouille   MAJ Git
68
69
70
  //////// RETOUR /////////
  void retour(char* show_a){
          send_msg2(show_a);
b64d3ca7   lahouass   Envoi de la tempe...
71
  }
a29bfd49   grouille   MAJ Git
72
73