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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.