Du übergibst die Adresse der Ports:
Code:
void mach_was (volatile unsigned char*, unsigned char);
void mach_was (volatile unsigned char *pport, unsigned char pin)
{
// Setzt pin auf 1
*pport |= (1<<pin);
}
void main()
{
mach_was (&PORTB, 2);
}
Alternativ könnte man anstatt der Pin-Nummer schon eine Maske für der Zugriff übergeben.
Allerdings rate ich dir dringend von solchen Konstrukten ab, weil der generierte Code breit und langsam wird!
Eigentlich brauchst du so was auch nicht, weil du zur Compilezeit schon weisst, welcher Port wo liegt und welche Aufgaben er hat.
Wozu braucht man sowas???
Lesezeichen