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,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 | - |