C Makro, Bits aus verschiedenen Registern setzen

OP #3079416
Lesenswert?
• ▲
▼
Hi,

Ich habe 26 Transistoren die an 26 Pins eines AtMega2560 (Arduino 
Mega2560) angeschlossen sind.
Jeweils einer ist fürs setzen und einer fürs Rücksetzen.
Leider sind die Pins nicht schön der Reihe nach und auch über mehrere 
Ports verstreut.
1
/*
2
[Arduino Pins connected to row transistors]
3
SET   ROW 0    = PA0 = 22
4
RESET ROW 0    = PA1 = 23
5
SET   ROW 1    = PA2 = 24
6
RESET ROW 1    = PA3 = 25 
7
SET   ROW 2    = PA4 = 26
8
RESET ROW 3    = PA5 = 27
9
SET   ROW 4    = PA6 = 28
10
RESET ROW 4    = PA7 = 29 
11
SET   ROW 5    = PC7 = 30
12
RESET ROW 5    = PC6 = 31
13
SET   ROW 6    = PC5 = 32
14
RESET ROW 6    = PC4 = 33
15
SET   ROW 7    = PC3 = 34
16
RESET ROW 7    = PC2 = 35
17
SET   ROW 8    = PC1 = 36
18
RESET ROW 8    = PC0 = 37
19
SET   ROW 9    = PD7 = 38
20
RESET ROW 9    = PG2 = 39
21
SET   ROW 10   = PG1 = 40
22
RESET ROW 10   = PG0 = 41
23
SET   ROW 11   = PL7 = 42
24
RESET ROW 11   = PL6 = 43
25
SET   ROW 12   = PL5 = 44
26
RESET ROW 12   = PL4 = 45
27
*/

Gibt es eine Möglichkeit mit hilfe eines Makros das setzen des richtigen 
Pins über die Nummer zu bewerkstelligen?

Standart wäre ja z.B.
1
PORTA |= (1<<PA0);

Aber ich würde gerne sowas in die Richtung haben:
1
set_row(11);
die dann den passenden Port und das entsprechende Bit nimmt und setzt.

Kann man sowas über ein PreProzessor Makro machen?

Danke schon mal für eure Hilfe!

Bouni

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.