PIC dynamischer Verweis auf Latch in C

OP #4681984
Lesenswert?
• ▲
▼
Hallo allerseits,

ich programmiere gelegentlich PIC18 mit dem XC8 Compiler.

Es kommt bei mir häufiger vor, dass ich gerne Verweise auf Pins in eine 
Variable schreiben will. Ein Beispiel: Wenn ich 5 LEDs an den Ausgängen 
(LATA0-LATA4) angeschlossen habe, würde ich mir gerne ein struct 
definieren, das mir einen Ausgang verwaltet. Dann instanziere ich 
fünfmal das struct und würde nun gerne 'meineLed.Ausgang=LATA3' usw. 
konfigurieren.
Wenn ich mir die Definition von LATAx anschaue, sehe ich dass es vom Typ 
__bit ist, den ich aber nicht in structs verwenden kann (must be global 
or static).

Kann man das irgendwie lösen? Oder bin ich nur verblendet und alles ganz 
einfach? Meine C Kenntnisse gehen nicht so weit, dass ich die 
Definitionen in xc.h bis ins letzte Glied verstehe.
Am besten wäre, wenn man sich nicht auf ein LATCH A,B,C festlegen 
müsste. Denn bisher gebe ich die Bitnummer an und das LATCH ist codiert.

Viele Grüße
#4682438
Lesenswert?
• ▲
▼
Geht meines Wissens nicht/nicht sinnvoll mit struct.
1
// im Header
2
#define on 1
3
#define off 0
4
#define meine_LED1     LATDbits.LATD7
5
#define meine_LED2     LATDbits.LATD8
6

7
// im Programm
8
meine_LED1 = on;

Oder
1
#define toggle_meine_LED1 asm volatile("BTG LATD, #7");
2
#define meine_LED1_ON     asm volatile("BSET LATD, #7");
3
#define meine_LED1_OFF    asm volatile("BCLR LATD, #7");

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.