Herunterladen Diese Seite drucken

Read_Port_X, Write_Port_X - B&R PC 300 Implementierungsanleitung

Vorschau ausblenden Andere Handbücher für PC 300:

Werbung

Panel PC 300
Implementierungsanleitung

6.3 READ_PORT_x, WRITE_PORT_x

Sie müssen die in den Codebeispielen enthaltenen READ_PORT_x und WRITE_PORT_x Funktionen
durch die entsprechenden I/O Port Zugriffsfunktionen Ihrer Entwicklungsumgebung ersetzen.
Beispiel für Implementierung der READ_PORT_x und WRITE_PORT_x Funktionen mit inp und outp
(z.B. für MS-DOS):
//
// I/O port access functions.
//
#define READ_PORT_UCHAR(port) inp(port)
#define WRITE_PORT_UCHAR(port, value) outp(port, value)
#define READ_PORT_USHORT(port) inpw(port)
#define WRITE_PORT_USHORT(port, value) outpw(port, value)
typedef union
{
unsigned long ldata;
unsigned char bdata[4];
} BYTES_AND_LONG;
// Read unsigned long value from I/O port.
unsigned long READ_PORT_ULONG(unsigned short port)
{
BYTES_AND_LONG data;
data.bdata[0] = inp(port++);
data.bdata[1] = inp(port++);
data.bdata[2] = inp(port++);
data.bdata[3] = inp(port++);
return data.ldata;
}
// Write unsigned long value to I/O port.
void WRITE_PORT_ULONG(unsigned short port, unsigned long value)
{
BYTES_AND_LONG data;
data.ldata = value;
outp(port++, (unsigned)data.bdata[0]);
outp(port++, (unsigned)data.bdata[1]);
outp(port++, (unsigned)data.bdata[2]);
outp(port++, (unsigned)data.bdata[3]);
}
Listing 1: Beispielimplementierung der READ_PORT_x und WRITE_PORT_x Funktionen
Copyright © B&R - Änderungen vorbehalten
PPC300_Implementierungsanleitung_V1_02.doc
Codierhinweise
02.11.09
38/132

Werbung

loading