Zusätzliche Defines in ioxxx.h

Gast #1091312
Hi,
ich bastle gerade an SPI rum. Bei SPI muss man leider selbst dafür 
sorgen das die entsprechenden Ports als Ausgang definiert werden. Leider 
sind die  SPI Ports nicht immer an den gleichen Pins.

Es wäre hilfreich wenn in den ioxxx.h Files Definitionen in dieser Art 
vorhanden wären.
1
#define  SPI_PORT  PORTB
2
#define  SPI_MISO  PB0
3
#define  SPI_MISO  PB1
4
.
5
.

Wäre sowas möglich? Also ich meine, ob man sowas generell in die Files 
aufnehmen könnte. Wenn ich das selber mache bringt das wenig.
Persönliche Seite
Ich setze mal ungeprüft voraus, dass du nachgeschaut hast, dass es in 
der avr-libc noch nichts ähnliches gibt.

Mein Vorschlag ist: Du kannst eine spi.h bereitstellen und darin die 
Definitionen machen. Du bekommst ja das Makro MCU für den Typ und kannst 
dadurch den passenden Port und dessen Pins zuordnen. Bei unbekannter MCU 
kannst du einen #error schmeissen. Ausserdem könntest du in dieser spi.h 
dann Prototypen für deine Libraryfunktionen unterbringen etc. das würde 
man dann so benutzen wie eine uart.h oder eine lcd.h...

Ich kenne mich mit der offiziellen Entwicklungsstrategie von avr-libc 
auch nicht aus. Ich denke, wenn sich deine Library bewährt, fliesst es 
vielleicht in die nächste, übernächste ... avr-libc ein? Mit dem 
Vorschlag oben wärst du sicher schneller "auf dem Markt".
Gast
Ja, ich hab gesucht, aber nichts vergleichbares gefunden.

Klar, da es die Möglichkeit nicht gibt muss ich die ganzen Defines in 
der spi.h machen, aber eben genau das würde ich damit eben vermeiden. 
Und wenn ein neuer Controller dazukommt würde es automatisch auch mit 
dem funktionieren
Persönliche Seite
MarkusB wrote:

> Klar, da es die Möglichkeit nicht gibt muss ich die ganzen Defines in
> der spi.h machen, aber eben genau das würde ich damit eben vermeiden.
> Und wenn ein neuer Controller dazukommt würde es automatisch auch mit
> dem funktionieren

Das ist nicht sicher: Es müsste ja einer hingehen und kontrollieren, ob 
die #defines für die SPI_... bei dem neuen AVR richtig sind. Du hoffst, 
dass das die avr-libc MAintainer sind ;-) Ich würde das dem Anwender 
aufhalsen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.