8051: Port als Parameter übergeben

M

Markus Westphal

Guest
Hallo zusammen,

ich will für den 8051 (AT89S8253 von Atmel) eine Funktion schreiben, der
ich als Parameter einen Port-Pin (P1_0, P1_1, ..., P3_0, ...) übergeben
kann, von dem dann Daten gelesen werden sollen (oder auch nur P1, P3, ...).
Leider habe ich dazu nichts gefungen, weshalb ich auf eure Hilfe hoffe.
Ach ja: ich verwende den Compiler von Keil (Version 7).


Vielen Dank und Grüße,
Markus
 
Markus Westphal schrieb:
Hallo zusammen,

ich will für den 8051 (AT89S8253 von Atmel) eine Funktion schreiben, der
ich als Parameter einen Port-Pin (P1_0, P1_1, ..., P3_0, ...) übergeben
kann, von dem dann Daten gelesen werden sollen (oder auch nur P1, P3, ...).
Leider habe ich dazu nichts gefungen, weshalb ich auf eure Hilfe hoffe.
Ach ja: ich verwende den Compiler von Keil (Version 7).


Vielen Dank und Grüße,
Markus

Eventuell so:

#define P0_0 0x00
#define P0_1 0x01
....
#define P3_7 0x37

typedef unsigned char uchar;

uchar ReadPort (uchar PortBit) {
uchar Port;
uchar Bit;
uchar Ergebnis;

Port = PortBit >> 4;
Bit = 1 << (PortBit & 0x0f);

switch (Port) {
case 0:
Ergebnis = P0 & Bit;
break;
case 1:
....
}
return Ergebnis;
}



Gruss
Markus
 

Welcome to EDABoard.com

Sponsor

Back
Top