Forum: Mikrocontroller und Digitale Elektronik PORT als Parameter?


von Manfred Schreier (Gast)


Lesenswert?

Hi,

Ist es möglich einen Port als Parameter übergeben?
z.b. Wie einen Pointer?

Damit so was geht
1
void FOO (PORTx,PINx){
2
     Portx|=PINx;
3
...}
4
5
 FOO(PORTA,PIN);

Danke für die hilfe

von Manfred Schreier (Gast)


Lesenswert?

Manfred Schreier schrieb:
> Portx|=PINx;

PORTx|=(1<<PINx)

natürlich

von Karl H. (kbuchegg)


Lesenswert?

Ja, ist möglich.
1
void foo( volatile uint8_t* port, uint8_t bit )
2
{
3
  *port |= ( 1 << bit );
4
}
5
6
int main()
7
{
8
  foo( &PORTA, 3 );
9
}

aber glücklich wirst du damit sicher nicht werden. Denn da kann der 
Compiler gar nichts mehr machen. Da muss er durch die komplette Lesen, 
Verunden, Schreiben Sequenz durch.
Mit allen Nebenwirkungen, die damit zusammenhängen
* Laufzeit besch....eiden
* Race Conditions wenn Interrupts ins Spiel kommen

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

übergib den Zeiger(pointer) auf PORTx / PINx

Namaste

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.