Bonjour, Décidément je n'arrive pas à comprendre la portée des variables entre le fichier main Header et CPP Merci de votre patience !

J'ai une erreur à la compilation "multiples définitions".
Je pense que je ne peux pas utiliser rxdata dans un fichier .cpp autre que dans Test1.cpp J'ai tout essayer y compris extern
Y a-t-il une solution merci

Fichier .ino
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
#include <Arduino.h>
#include "Test1.h"
#include "Test2.h"
 
void setup()
{
  Serial.begin(115200);
  InitData();
  loadData();
}
 
void loop()
{
}
Fichier Test1.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#ifndef TEST1_H
#define TEST1_H
 
#include <Arduino.h>
 
 typedef struct 
{
  bool val1;
  bool val2;
  uint32_t ch[16];
}Data;
 
Data rxData;
 
void InitData();
 
 
#endif
Fichier Test2.h

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
#ifndef TEST2_H
#define TEST2_H
 
#include <Arduino.h>
 
void loadData();
 
#endif
Fichier Test1.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
#include "Test1.h"
 
void InitData(void)
{
        rxData.ch[1] = 1;
}
Fichier Test2.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
#include "Test2.h"
#include "Test1.h"
 
void loadData(void)
{
        rxData.ch[1] = 0;
}