AT90CAN - Pinbelegung mit software auswählen

Gast #4520952
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

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