Herunterladen Diese Seite drucken

Temperatur Von Board I/O Und Cpu Lesen - B&R PC 300 Implementierungsanleitung

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

Werbung

Panel PC 300
Implementierungsanleitung

7.8.1 Temperatur von Board I/O und CPU lesen

Die Temperatur des Board I/O Bereichs und der CPU kann über das Baseboard TempBoard Register
des MTCX (siehe Seite 28) gelesen werden.
Das folgende C Codebeispiel zeigt, wie die Board I/O und CPU Temperatur gelesen werden können.
// Read board I/O and CPU temperature.
//
// Parameters
//
IoTemp
//
[out] Points to variable that receives the
//
board temperature in degrees Celsius: 0 to 127.
//
CpuTemp
//
[out] Points to variable that receives the
//
CPU temperature in degrees Celsius: 0 to 127.
void GetBoardIoAndCpuTemp(char *IoTemp, char *CpuTemp)
{
MTCX_BASEBOARD_TEMPBOARD_REG reg;
*(unsigned long*)&reg = READ_PORT_ULONG(MTCX_BASEBOARD_TEMPBOARD_ADDR);
*IoTemp = reg.Temp1;
*CpuTemp = reg.Temp2;
}
Listing 46: GetBoardIoAndCpuTemp – Board I/O und CPU Temperatur lesen
Nachdem Temp1 und Temp2 im Baseboard TempBoard Register jeweils als Byte auf einer Bytegrenze
liegen, können die einzelnen Temperaturen auch auf folgende Weise einzeln gelesen werden.
// Read board I/O temperature.
//
// Parameters
//
Temp
//
[out] Points to variable that receives the
//
board temperature in degrees Celsius: 0 to 127.
void GetBoardIoTemp(char *Temp)
{
*Temp = (char)READ_PORT_UCHAR(MTCX_BASEBOARD_TEMPBOARD_ADDR); // read byte 0 only
}
Listing 47: GetBoardTemp – Board I/O Temperatur lesen
// Read CPU temperature.
//
// Parameters
//
Temp
//
[out] Points to variable that receives the
//
CPU temperature in degrees Celsius: 0 to 127.
void GetCpuTemp(char *Temp)
{
*Temp = (char)READ_PORT_UCHAR(MTCX_BASEBOARD_TEMPBOARD_ADDR + 2); // read byte 2 only
}
Listing 48: GeCpuTemp – CPU Temperatur lesen
Die verwendeten Definitionen finden Sie auf Seite 42.
Copyright © B&R - Änderungen vorbehalten
PPC300_Implementierungsanleitung_V1_02.doc
Codebeispiele
02.11.09
92/132

Werbung

loading