User | Revision | Line number | New contents of line |
slowness |
0:4359b47b3d7c
|
1
|
#include "mbed.h"
|
slowness |
0:4359b47b3d7c
|
2
|
#include "MSCFileSystem.h"
|
slowness |
0:4359b47b3d7c
|
3
|
|
slowness |
0:4359b47b3d7c
|
4
|
#define FSNAME "msc"
|
slowness |
0:4359b47b3d7c
|
5
|
#define LOCAL "local"
|
slowness |
0:4359b47b3d7c
|
6
|
|
slowness |
0:4359b47b3d7c
|
7
|
#define START 1
|
slowness |
0:4359b47b3d7c
|
8
|
#define STOP 0
|
slowness |
0:4359b47b3d7c
|
9
|
#define DEBOUNCING_INTERVAL 40 // Debouncing interval (in mili-seconds)
|
slowness |
0:4359b47b3d7c
|
10
|
|
slowness |
0:4359b47b3d7c
|
11
|
Serial pc(USBTX,USBRX);
|
slowness |
0:4359b47b3d7c
|
12
|
|
slowness |
0:4359b47b3d7c
|
13
|
MSCFileSystem msc(FSNAME);
|
slowness |
0:4359b47b3d7c
|
14
|
LocalFileSystem local(LOCAL);
|
slowness |
0:4359b47b3d7c
|
15
|
|
slowness |
0:4359b47b3d7c
|
16
|
DigitalOut led1(LED1);
|
slowness |
0:4359b47b3d7c
|
17
|
|
slowness |
0:4359b47b3d7c
|
18
|
AnalogIn input(p16);
|
slowness |
0:4359b47b3d7c
|
19
|
InterruptIn bouton(p18);
|
slowness |
0:4359b47b3d7c
|
20
|
Timeout timeout;
|
slowness |
0:4359b47b3d7c
|
21
|
Timer t;
|
slowness |
0:4359b47b3d7c
|
22
|
Timer timerAcquisition;
|
slowness |
0:4359b47b3d7c
|
23
|
Timer tempsBoucle;
|
slowness |
0:4359b47b3d7c
|
24
|
|
slowness |
0:4359b47b3d7c
|
25
|
struct TRAME
|
slowness |
0:4359b47b3d7c
|
26
|
{
|
slowness |
0:4359b47b3d7c
|
27
|
unsigned long int tempsA; /* 4 octets nb de tops de 250�s */
|
slowness |
0:4359b47b3d7c
|
28
|
unsigned char topAv, topAr;
|
slowness |
0:4359b47b3d7c
|
29
|
unsigned short guidon, refx, refy, refz, ax, ay, az, rx, ry, rz, gaz;
|
slowness |
0:4359b47b3d7c
|
30
|
unsigned long int tempsB; /* 4 octets tempsA + 1 */
|
slowness |
0:4359b47b3d7c
|
31
|
};
|
slowness |
0:4359b47b3d7c
|
32
|
|
slowness |
0:4359b47b3d7c
|
33
|
TRAME trame;
|
slowness |
0:4359b47b3d7c
|
34
|
int etatBouton = STOP;
|
slowness |
0:4359b47b3d7c
|
35
|
int compteurfclose = 0;
|
slowness |
0:4359b47b3d7c
|
36
|
int compteurfopen = 0;
|
slowness |
0:4359b47b3d7c
|
37
|
int veriffclose = 1;
|
slowness |
0:4359b47b3d7c
|
38
|
int compteurBoucle= 0;
|
slowness |
0:4359b47b3d7c
|
39
|
DIR *d;
|
slowness |
0:4359b47b3d7c
|
40
|
FILE *fichier;
|
slowness |
0:4359b47b3d7c
|
41
|
|
slowness |
0:4359b47b3d7c
|
42
|
void isr_interrupteurRisingStart(void) {
|
slowness |
0:4359b47b3d7c
|
43
|
if ( t.read_ms() > DEBOUNCING_INTERVAL ) {
|
slowness |
0:4359b47b3d7c
|
44
|
etatBouton = START;
|
slowness |
0:4359b47b3d7c
|
45
|
printf("Isr Rising\n\r");
|
slowness |
0:4359b47b3d7c
|
46
|
compteurfopen = 1;
|
slowness |
0:4359b47b3d7c
|
47
|
wait_ms(100);
|
slowness |
0:4359b47b3d7c
|
48
|
}
|
slowness |
0:4359b47b3d7c
|
49
|
|
slowness |
0:4359b47b3d7c
|
50
|
t.reset(); // timer reset
|
slowness |
0:4359b47b3d7c
|
51
|
}
|
slowness |
0:4359b47b3d7c
|
52
|
void isr_interrupteurFallingStop(void) {
|
slowness |
0:4359b47b3d7c
|
53
|
if ( t.read_ms() > DEBOUNCING_INTERVAL ) {
|
slowness |
0:4359b47b3d7c
|
54
|
etatBouton = STOP;
|
slowness |
0:4359b47b3d7c
|
55
|
printf("Isr Falling\n\r");
|
slowness |
0:4359b47b3d7c
|
56
|
compteurfclose = 1;
|
slowness |
0:4359b47b3d7c
|
57
|
wait_ms(100);
|
slowness |
0:4359b47b3d7c
|
58
|
}
|
slowness |
0:4359b47b3d7c
|
59
|
|
slowness |
0:4359b47b3d7c
|
60
|
t.reset(); // timer reset
|
slowness |
0:4359b47b3d7c
|
61
|
}
|
slowness |
0:4359b47b3d7c
|
62
|
int main() {
|
slowness |
0:4359b47b3d7c
|
63
|
t.start();
|
slowness |
0:4359b47b3d7c
|
64
|
int acquisition = 0;
|
slowness |
0:4359b47b3d7c
|
65
|
float temps;
|
slowness |
0:4359b47b3d7c
|
66
|
char i;
|
slowness |
0:4359b47b3d7c
|
67
|
|
slowness |
0:4359b47b3d7c
|
68
|
trame.refx = 0x7ff; /* 2047 */
|
slowness |
0:4359b47b3d7c
|
69
|
trame.refy = 0x7ff;
|
slowness |
0:4359b47b3d7c
|
70
|
trame.refz = 0x7ff;
|
slowness |
0:4359b47b3d7c
|
71
|
trame.ax = 0x5555;
|
slowness |
0:4359b47b3d7c
|
72
|
|
slowness |
0:4359b47b3d7c
|
73
|
unsigned short int buf[16];
|
slowness |
0:4359b47b3d7c
|
74
|
for(i=0;i<16;i++){
|
slowness |
0:4359b47b3d7c
|
75
|
buf[i] = 0;
|
slowness |
0:4359b47b3d7c
|
76
|
}
|
slowness |
0:4359b47b3d7c
|
77
|
buf[4] = 0x7FF;
|
slowness |
0:4359b47b3d7c
|
78
|
buf[5] = 0x7FF;
|
slowness |
0:4359b47b3d7c
|
79
|
buf[6] = 0x7FF;
|
slowness |
0:4359b47b3d7c
|
80
|
buf[7] = 0x5555;
|
slowness |
0:4359b47b3d7c
|
81
|
//d = opendir("/" FSNAME);
|
slowness |
0:4359b47b3d7c
|
82
|
//fichier = fopen( "/" FSNAME "/Datatest.txt", "ab");
|
slowness |
0:4359b47b3d7c
|
83
|
|
slowness |
0:4359b47b3d7c
|
84
|
//d = opendir("/" LOCAL);
|
slowness |
0:4359b47b3d7c
|
85
|
//fichier = fopen( "/" LOCAL "/Datatest.txt", "ab");
|
slowness |
0:4359b47b3d7c
|
86
|
|
slowness |
0:4359b47b3d7c
|
87
|
bouton.rise(&isr_interrupteurRisingStart);
|
slowness |
0:4359b47b3d7c
|
88
|
bouton.fall(&isr_interrupteurFallingStop);
|
slowness |
0:4359b47b3d7c
|
89
|
|
slowness |
0:4359b47b3d7c
|
90
|
while (1){
|
slowness |
0:4359b47b3d7c
|
91
|
|
slowness |
0:4359b47b3d7c
|
92
|
if(compteurfopen){
|
slowness |
0:4359b47b3d7c
|
93
|
if(veriffclose){
|
slowness |
0:4359b47b3d7c
|
94
|
do{
|
slowness |
0:4359b47b3d7c
|
95
|
printf("do\n\r");
|
slowness |
0:4359b47b3d7c
|
96
|
fichier = fopen( "/" FSNAME "/Data.IEF", "ab");
|
slowness |
0:4359b47b3d7c
|
97
|
timerAcquisition.start();
|
slowness |
0:4359b47b3d7c
|
98
|
}while (fichier == NULL);
|
slowness |
0:4359b47b3d7c
|
99
|
printf("Open file\n\rAcquisition : %d\n\r",acquisition);
|
slowness |
0:4359b47b3d7c
|
100
|
veriffclose = 0;
|
slowness |
0:4359b47b3d7c
|
101
|
compteurfopen = 0;
|
slowness |
0:4359b47b3d7c
|
102
|
acquisition++;
|
slowness |
0:4359b47b3d7c
|
103
|
}else{
|
slowness |
0:4359b47b3d7c
|
104
|
printf("Defaultclose file\n\r");
|
slowness |
0:4359b47b3d7c
|
105
|
compteurfclose = 1;
|
slowness |
0:4359b47b3d7c
|
106
|
}
|
slowness |
0:4359b47b3d7c
|
107
|
}
|
slowness |
0:4359b47b3d7c
|
108
|
tempsBoucle.start();
|
slowness |
0:4359b47b3d7c
|
109
|
while (etatBouton && !compteurfopen){
|
slowness |
0:4359b47b3d7c
|
110
|
buf[1] = ((timerAcquisition.read_us()) & 0xFFFF0000)>>16;
|
slowness |
0:4359b47b3d7c
|
111
|
buf[0] = timerAcquisition.read_us();
|
slowness |
0:4359b47b3d7c
|
112
|
buf[15] = ((timerAcquisition.read_us()/2)& 0xFFFF0000)>>16;
|
slowness |
0:4359b47b3d7c
|
113
|
buf[14] = timerAcquisition.read_us()/2;
|
slowness |
0:4359b47b3d7c
|
114
|
buf[7] = input.read_u16();
|
slowness |
0:4359b47b3d7c
|
115
|
fwrite(buf,2,16,fichier);
|
slowness |
0:4359b47b3d7c
|
116
|
led1 = 1;
|
slowness |
0:4359b47b3d7c
|
117
|
compteurBoucle++;
|
slowness |
0:4359b47b3d7c
|
118
|
}
|
slowness |
0:4359b47b3d7c
|
119
|
|
slowness |
0:4359b47b3d7c
|
120
|
if(compteurfclose){
|
slowness |
0:4359b47b3d7c
|
121
|
temps = tempsBoucle.read();
|
slowness |
0:4359b47b3d7c
|
122
|
printf("%d %f\n\r", compteurBoucle, temps);
|
slowness |
0:4359b47b3d7c
|
123
|
fclose(fichier);
|
slowness |
0:4359b47b3d7c
|
124
|
timerAcquisition.reset();
|
slowness |
0:4359b47b3d7c
|
125
|
led1 = 0;
|
slowness |
0:4359b47b3d7c
|
126
|
printf("Close file Compteur\n\r");
|
slowness |
0:4359b47b3d7c
|
127
|
compteurfclose = 0;
|
slowness |
0:4359b47b3d7c
|
128
|
veriffclose = 1;
|
slowness |
0:4359b47b3d7c
|
129
|
compteurBoucle = 0;
|
slowness |
0:4359b47b3d7c
|
130
|
}
|
slowness |
0:4359b47b3d7c
|
131
|
}
|
slowness |
0:4359b47b3d7c
|
132
|
}
|