Forum: Mikrocontroller und Digitale Elektronik AT90CAN - Pinbelegung mit software auswählen


von stefan (Gast)


Lesenswert?

Hallo ich habe folgendes Problem.
ich habe zwei Module, die den gleichen uC (AT90CAN) haben und fast die 
gleichen Funktionen haben und sich nur in der Pinbelegung unterscheiden. 
Ich kriege es nicht hin, dass ich die Pinbelegung sich ändert wenn ich 
eine Modul auswähle in candef.h auswähle. Ich habe das Gefühl, dass die 
#ifdef defined CAN_Modul1 == 1 Anweisung einfach ignoriert wird und ich 
bekomme Fehler das z.B. LS1 undeclared. Was mache ich falsch?
1
//candef.h
2
#define CAN_Modul1 1
3
#define CAN_Modul2 0
4
5
6
//io.h
7
#include "candef.h"
8
#ifndef IO_H_
9
#define IO_H_
10
11
extern void IO_init(void);
12
13
#ifdef defined CAN_Modul1 == 1
14
  #define LS1 (&PORTD), (PD7)
15
  #define IN1 (PIND & (1 << BIT3))
16
#elif defined CAN_Modul2 == 1
17
  // Outputs
18
  #define OUT1 (&PORTF), (PA5)
19
  #define IN1 (PINA & (1 << BIT4))
20
#else
21
  #error "Please define correct module"
22
#endif
23
24
#endif /* IO_H_ */

Gruss Stefan

von Marc S. (marc_s86)


Lesenswert?

Entweder ifdef oder if defined.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.