Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

1 Zum Seitenanfang

Freitag, 10. September 2010, 16:32

PC Temperatursensoren auslesen

Alles was man zum Anfangen braucht, bei Windows XP, sind eigene Treiber , damit man auf die Ports zugreifen kann.
Oder ein fertigen wie IO.Dll von Fred Bulback.
Wer aber DDK besitzt kann sich Quellcode runterladen porttalk32.



Winbond W83627EHF IO Chip
ISA Ports 0x290

0x295 als Index Port
0x296 als Data Port
bei ITE IT8712F sind die selben Ports aber andere Register


Das Programm
Ich habe es in VB Net gemacht um Temperatur von der Grafikkarte auslesen zu können in VB6 gabs leider ein Fehler die ich dann mittels ON Error Resume Next behoben habe, aber ein end Lösung wahr das auch nicht beim spielen ist dann der Rechner abgestürzt.




C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte) 
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte 
Private Const indexPort = &H295 
Private Const dataPort = &H296 
Private Const Bank0 = &H0 
Private Const Bank1 = &H2 
Private Const Bank2 = &H4 
Private Function Get_Temp(Sensor as Byte) as Byte 
    	Select Case Sensor 
            	case 0 
                    	PortOut(indexPort,&H27) 
                    	Get_Temp =PortIn(dataPort) 
            	case 1 
                    	Switch_bank(1) 
                    	PortOut(indexPort,&H50) 
                    	Get_Temp =PortIn(dataPort) 
            	case 2 
                    	Switch_bank(2) 
                    	PortOut(indexPort,&H50) 
                    	Get_Temp =PortIn(dataPort) 
  	End Select 
End Function 
Private Sub Switch_bank(bank As Integer) 
   	Select Case bank 
          	Case 0 
                	PortOut(indexPort,&H4E) 
                	PortOut(dataport, Bank0) 
                	Exit Sub 
         	Case 1 
                	PortOut(indexPort,&H4E) 
                	PortOut(dataport, Bank1) 
                	Exit Sub 
         	Case 2 
                	PortOut(indexPort,&H4E) 
                	PortOut(dataport, Bank2) 
                	Exit Sub 
  	End Select 
End Sub


Für ITE IT8712F

C/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte) 
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte  
Private Const indexPort = &H295 
Private Const dataPort = &H296   
Private Function Get_Temp(Sensor as Byte) as Byte 
      	    Select Case Sensor         
               	case 0 
                      	           PortOut(indexPort,&H29)             
                      	Get_Temp =PortIn(dataPort)          
               	case 1              
                      	PortOut(indexPort,&H2A) 
                      	           Get_Temp =PortIn(dataPort)         
               	case 2              
                      	PortOut(indexPort,&H2B)             
                      	Get_Temp =PortIn(dataPort)      
      	End Select 
End Function
»gen4ik« hat folgende Dateien angehängt:
  • io.zip (27,09 kB - 38 mal heruntergeladen - zuletzt: 10. April 2012, 21:36)
  • porttalk22.zip (68 kB - 27 mal heruntergeladen - zuletzt: 10. April 2012, 21:38)
  • datasheet.pdf (984,79 kB - 25 mal heruntergeladen - zuletzt: 10. April 2012, 21:38)
  • ite.pdf (940,65 kB - 25 mal heruntergeladen - zuletzt: 12. Januar 2012, 05:05)
  • WindowsApplication1.7z (30,8 kB - 34 mal heruntergeladen - zuletzt: 10. April 2012, 21:37)
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

2 Zum Seitenanfang

Samstag, 11. September 2010, 10:52

in Case 0 musst du switch_bank(0) hinzufügen

ich schätze andere software greift in die verarbeitung ein; bist du sicher dass kein anderes programm die temparatur ausliest? In welchem Modus führst du das programm aus(Real-modi oä.)?

wie kommst du aus h27 ?

lg nocturne
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

3 Zum Seitenanfang

Samstag, 11. September 2010, 12:28

ja kann nicht mit speedfan zusammen arbeiten.:)
so bald man auf eine belegte recource zugreift giebs fehler ist klar .

realmodus unter xp kenne ich nicht :)
ich kenne nur protected modus in MSDos

tut mir leid frage falsch verstanden

auf 0x27 register must du nicht extra in bank 0 springen da der Adresse 0x27 hat
bei Registern 0x50 0x51 in bank 1 und 0x50 und 0x51 in bank 2 wird schon schwiriger zu erkennen welchen bank man jezt meint

6.8.67 CPUTIN Temperature Sensor Temperature (High Byte) Register - Index 50h (Bank 1)
6.8.68 CPUTIN Temperature Sensor Temperature (Low Byte) Register - Index 51h (Bank 1)

6.8.74 AUXTIN Temperature Sensor Temperature (High Byte) Register - Index 50h (Bank 2)
6.8.75 AUXTIN Temperature Sensor Temperature (Low Byte) Register - Index 51h (Bank 2)

Temperaturauslesen bei Nvidia grafik gpu

C/C++-Quelltext

1
2
3
4
5
6
7
Private Declare Function NvCplGetThermalSettings Lib "NvCpl.dll" (ByVal nWindowsMonitorNumber As UInteger, ByRef pdwCoreTemp As Long, ByRef pdwAmbientTemp As Long, ByRef pdwUpperLimit As Long) As Boolean

Dim A As Long
Dim B As Long
Dim C As Long
Call NvCplGetThermalSettings(0, A, B, C)
Label4.Text = "GPU Temp " & A
»gen4ik« hat folgende Bilder angehängt:
  • temp.JPG
  • temp.JPG
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »gen4ik« (11. September 2010, 13:10)

 

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

4 Zum Seitenanfang

Sonntag, 12. September 2010, 09:35

Dann hast du es jetzt gelöst, oder?

lg
 

gen4ik

Doppel-As

Dabei seit: 08.09.2010

Beiträge: 126

 

5 Zum Seitenanfang

Sonntag, 12. September 2010, 22:54

das wahr auch keine frage
das programm also quelcode ist dabei.
ist in VB.NET gemacht aber portieren auf c oder delphi ist nicht das problem

mit speedfan rausfinden was für ein Super IO chip auf dem board ist
meistens heute ite oder winbound
bei mir asrock hat winbound drauf
beim ASUS sind meist ITE drauf

Datasheets sind auch da.

wofür entwikelt:

um temperatur und cpu auslastung auf kleinen lcd anzuzeigen
oder was für admins temp. überwachung von Server über nezwerk

Porttalk ist als quelcode da braucht man aber DDK für. mit normalen VC++ compilieren geht nicht

bei devc ist ddk dabei
aber nie benuzt


Und noch was wichtiges
Da man mit hardware direkt umgeht muss man schon im klaren sein was man da macht
Es kann hardware kaput gehen da man nicht nur temp. auslesen kann sondern lüftersteuirung FDD maus usw sind an den chip angeschlossen
abweichend von mainboard


bevor man das programm starten sollte man sich vergewissern das der Chip richtig gewähl ist
В нас часто проявляется плебейство.Ну, что ж, один - атлет, другой - Атлант.Несовместимы Гений и Злодейство,Но совместимы зависть и талант.
 

Ähnliche Themen