Commit 27187418696884070319eefc4fb6991c6a3ad3a1
1 parent
1058ea24
remplacé
Showing
1 changed file
with
0 additions
and
96 deletions
Show diff stats
Tuno_to_rpi.c deleted
... | ... | @@ -1,96 +0,0 @@ |
1 | -#include <avr/io.h> // for the input/output register | |
2 | -#include <avr/interrupt.h> | |
3 | -#include <util/delay.h> | |
4 | -#include <unistd.h> | |
5 | -#include <string.h> | |
6 | -#include <stdlib.h> | |
7 | -#include <stdio.h> | |
8 | - | |
9 | -#define PRESCALER 1024 | |
10 | -#define TIME_SLOT 20 | |
11 | -#define NB_TICK 113 | |
12 | -#define BAUDRATE 103 | |
13 | - | |
14 | -char Donnee[20]; | |
15 | - | |
16 | -void init_serial(void) | |
17 | -{ | |
18 | - /* ACHTUNG : we suppose UBRR value < 0xff */ | |
19 | - /* Not true in all case */ | |
20 | - uint8_t baudrate = BAUDRATE; | |
21 | - /* Set baud rate */ | |
22 | - UBRR0H = 0; | |
23 | - UBRR0L = baudrate; | |
24 | - /* Enable transmitter *///task_led_red(); | |
25 | - //task_send_serial('A'); | |
26 | - UCSR0B = (1<<TXEN0); | |
27 | - /* Set frame format */ | |
28 | - UCSR0C = 0x06; | |
29 | - | |
30 | -} | |
31 | - | |
32 | -void send_serial(unsigned char c) | |
33 | -{ | |
34 | - loop_until_bit_is_set(UCSR0A, UDRE0); | |
35 | - UDR0 = c; | |
36 | -} | |
37 | - | |
38 | -void send_msg(char Donnee[]){ | |
39 | - //char msg[] = "Bonjour\r\n"; | |
40 | - while(1){ //nécessaire pour eviter d'executer la tache une seule fois | |
41 | - int i=0; | |
42 | - for(i=0; i<strlen(Donnee); i++){ | |
43 | - send_serial(Donnee[i]); | |
44 | - _delay_ms(100); | |
45 | - } | |
46 | - | |
47 | - } | |
48 | -} | |
49 | - | |
50 | - | |
51 | - | |
52 | -// L'équivalent de analogueRead() pour avr | |
53 | -int analogReadNew(uint8_t pin) { | |
54 | - // Pour les cartes Mega | |
55 | - #if defined(__AVR_ATmega1280__) | |
56 | - // Si le pin considéré est de type Ax, on utilise ça | |
57 | - if (pin >= 54) pin -= 54; | |
58 | - // Pour les Uno et Nano | |
59 | - #else | |
60 | - if (pin >= 14) pin -= 14; | |
61 | - #endif | |
62 | - | |
63 | - // Définition de la référence de tension | |
64 | - ADMUX |= (1 << REFS0); | |
65 | - // On sélectionne notre pin | |
66 | - ADMUX |= pin & 0x07; | |
67 | - | |
68 | - #if defined(ADCSRB) && defined(MUX5) | |
69 | - // Utilisation de MUX5 sur la Mega pour les pins au-dessus de A7 | |
70 | - ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); | |
71 | - #endif | |
72 | - | |
73 | - // On lance la conversion | |
74 | - sbi(ADCSRA, ADSC); | |
75 | - | |
76 | - // Le bit sera désactivé à la fin de la conversion | |
77 | - while(bit_is_set(ADCSRA, ADSC)); | |
78 | - | |
79 | - // Lire ADCL en premier est obligatoire, sinon l'ADC se bloque | |
80 | - uint8_t low = ADCL; | |
81 | - | |
82 | - // Récupérer le résultat | |
83 | - return (ADCH << 8) | low; | |
84 | -} | |
85 | - | |
86 | -void main() | |
87 | -{ | |
88 | - init_serial(); | |
89 | - while(1){ | |
90 | - //send_serial('A'); | |
91 | - Send_msg(analogReadNew(0)*0.0048828125*100); | |
92 | - sleep(3000); | |
93 | - } | |
94 | - | |
95 | -} | |
96 | - |