Variablenübertragung

Gast #3345161
Lesenswert?

Hallo zusammen.
Folgene situation:

In meinem AVR Projekt habe ich eine C-Datei. In der steht eine Funktion:
1
#include <avr/io.h>
2

3
void Abfrage(){
4

5
  if(Eingang1){
6
     x=1;
7
  }
8
  else if(Eingang2){
9
     x=2;
10
  }
11
  else{
12
  x=0;
13
  }
14
}
jedoch will ich aber in einer anderen C-Datei nach x fragen. (in meiner 
main)

wie schreibt man das am besten.? was muss man beachten.?
PS: die C-Datei, in der die Funktion Abfrage steht, binde ich auch durch 
ihre Include-Datei mit ein.

Danke euch
MfG
#3345202
Lesenswert?

erste Datei
Du hast x nirgendwo deklariert, also nehme ich mal integer.
1
#include <avr/io.h>
2

3
int x;
4

5
void Abfrage(){
6
  if(Eingang1){
7
     x=1;
8
  }
9
  else if(Eingang2){
10
     x=2;
11
  }
12
  else{
13
  x=0;
14
  }
15
}

zweite Datei
1
#include <avr/io.h>
2

3
extern int x;
4

5
void mach_irgendwas(){
6
 x=x*2;
7
}
Gast #3345282
Lesenswert?

in der ersten c-datei entsteht ne fehlermeldung:

multiple definition of `x'

was ist falsch daran.?
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include "mydefs.h"
4
#include "own.h"
5

6
int x = 0;
7
void Abfrage (){
8
  
9
  if ( (PIN_EINGANG & (1<<P_EINGANG0)) ) {
10
    x=1;
11
  }
12
  else if ( (PIN_EINGANG & (1<<P_EINGANG1)) ) {
13
    x=2;
14
  }
15
  else{
16
    x=0;
17
  }
18
  
19
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren