Hardwareinformationen
Übersicht

barratatorBetreff: Hardwareinformationen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich bin zwar hier kaum Aktiv, aber möchte jetzt auch mal meinen Beitrag leisten. Zurzeit gibt es noch nahezu keine Userlib, die kostenlos ist, die vom Mainboard Sensordaten auslesen kann. Jedes Mainboard hat einen anderen Chip dafür und lässt sich anders auslesen. Dies soll jetzt kein Code-bettel-Thread sein, sondern jeder, der für sein Board mal soetwas gemacht hat, kann es hier Posten (sofortn solche Sammelthreads erwünscht sind). Für mein aktuelles Projekt brauche ich auch soetwas, es liest über die inpout32.dll die Daten direkt aus dem ISA-Bus aus. Dieser Code ist Winbond-Chips geschrieben, getestet wurde es mit einem W83627, jedoch sollte es auch mit einem W83647 und einem W83697 klappen. Möglicherweise noch mehr ![]() Daten: CPU Temperatur, Fan Speeds (3 Stück), Spannung (leider noch zimlich verbuggt bei der umrechnung) Code: [AUSKLAPPEN] Global Fan1_div = 7 , Fan2_div = 7 , Fan3_div = 7 Global Fan1_lenght= 4 , Fan2_lenght= 4 , Fan3_lenght= 4 Global Fan1_divpos= $47 , Fan2_divpos= $47 , Fan3_divpos= $47 Graphics 800,600,0,2 SetBuffer BackBuffer() Repeat Cls Text 20,20,"Fan Speeds: (noch verbuggt)" Text 20, 48 ,"Fan 1: "+GetFanSpeed(1)+" RPM" Text 220,48, "Fan 2: "+GetFanSpeed(2)+" RPM" Text 420,48, "Fan 3: "+GetFanSpeed(3)+" RPM" Text 20,200, "Spannung: (noch verbuggt)" Text 20,214+(1*14) ,"VCore A: "+GetVoltage(1) Text 20,214+(2*14) ,"VCore B: "+GetVoltage(2) Text 20,214+(3*14) ,"+3.3 V : "+GetVoltage(3) Text 20,214+(4*14) ,"+5 V : "+GetVoltage(4) Text 20,214+(5*14) ,"+12 V : "+GetVoltage(5) Text 20,214+(6*14) ,"-12 V : "+GetVoltage(6) Text 20,214+(7*14) ,"-5 V : "+GetVoltage(7) Text 20,400, "Temperatur: (noch verbuggt)" Text 20,428, "CPU: "+GetCPUTemp()+" °C" Text 20,442, "MB : "+GetMBTemp() +" °C" Flip Delay 1000 Forever Function GetVoltage#(id) ; 1="vcA" 2="vcB" 3="+3.3" 4="+5" 5="+12" 6="-12" 7="-5" Select id Case 1: Return ReadData($20)*Float(0.016) Case 2: Return ReadData($21)*Float(0.016) Case 3: Return ReadData($22)*Float(0.016) Case 4: Return ReadData($23)*Float(0.016) / Float(0.595238) Case 5: Return ReadData($24)*Float(0.016) / Float(0.263157) Case 6: a# = Float(0.0) d# = ReadData($25)*Float(0.016) v# = 3.5 Return (d#+v#-a#)/(1-v#)*-1 Case 7: Return ReadData($26)*Float(0.016) End Select End Function Function GetFanSpeed(id) Select id Case 1: count = ReadData(Fan1_count) div = Div2Num(ReadData(Fan1_divpos) Shr 4 And 3) Return Int(Float(Float(1.35)*10^6)/Float(count*div)) Case 2: count = ReadData(Fan2_count) div = Div2Num(ReadData(Fan1_divpos) Shr 6 ) Return Int(Float(Float(1.35)*10^6)/Float(count*div)) Case 3: count = ReadData(Fan3_count) div = Div2Num(ReadData(Fan1_divpos) Shr 6) Return Int(Float(Float(1.35)*10^6)/Float(count*div)) End Select End Function Function GetCPUTemp() Return ReadData($50) End Function Function GetMBTemp() Return ReadData($27) End Function Function ReadData(byte) Out32($295,$4e) Out32($296,Inp32($296) Or 1) Out32($295,byte) Return Inp32($296) End Function Function Div2Num(a) r = 1 For i = 1 To a r = r*2 Next Return r End Function Falls ihr die inpout32.dll noch nicht habt könnt ihr sie >hier< runterladen. Die *.decls dazu ist: Code: [AUSKLAPPEN] .lib "INPOUT32.DLL" Out32%(PortAddress%,Value%):"Out32" Inp32%(PortAddress%):"Inp32" Falls der Bedarf besteht, kann ich auch noch eine selbstgeschriebe ( ![]() ![]() Viel Spaß beim Experimentieren und viel Erfolg, und bitte postet eure Ergebnisse, damit andere Leute auch etwas davon haben ![]() Gruß Bastian[list=][/list] |
||
- Zuletzt bearbeitet von barratator am So, Sep 28, 2008 11:40, insgesamt 3-mal bearbeitet
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Funktioniert bei mir zwar grundsätzlich, aber leider bin ich zu dumm dir jetzt zu sagen was ich für ein Motherboard hab ![]() Übrigens ist die Funktion "binary$" überflüssig. Du verwendest sie ja selber nicht ![]() mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh stimmt ![]() Die Funktion ist noch ein überbleibsel von vorherigen Tests. Achja... Speedfan und Everest können sagen, welche Chips (SuperIO) man hat. Gruß Bastian |
||
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hatte da auch mal was gemacht:
Code: [AUSKLAPPEN] SetBuffer BackBuffer()
Timer = CreateTimer(2) Abst = 15 Dim ArrayCPU(455) Dim ArraySys(455) While Not KeyHit(1) ;Cls Origin 0,0 Color 0,0,0 Rect 0,0,480,55 Color 255,255,255 Text 5,10, "CPU-Fan: " + GetCPUFanSpeed() + " RPM" Text 5,25, "Sys-Fan: " + GetNforceFanSpeed() + " RPM" Color 255,0,0 Text 5,40, "CPU-Temp.: " + (GetCPUTemperature()-23040) + " °C" Color 0,255,0 Text 5,55, "Sys-Temp.: " + (GetSystemTemperature()-11008) + " °C" AppTitle CurrentTime$() Color 100,100,100 For i = 0 To 7 Line 25,100+i*Abst,480,100+i*Abst Text 0, 95+i*Abst, 7*Abst-i*Abst Next ;Color 255,0,0 LockBuffer BackBuffer() WritePixelFast Counter + 25, (100+7*Abst)-(GetCPUTemperature()-23040), argb_color(1,255,0,0) WritePixelFast Counter + 25, (100+7*Abst)-(GetSystemTemperature()-11008), argb_color(1,0,255,0) UnlockBuffer BackBuffer() Counter = Counter + 1 Flip 0 WaitTimer Timer Wend End Function ARGB_Color(Alpha,Red,Green,Blue) Return (Alpha*$1000000+Red*$10000+Green*$100+Blue) End Function Dazu die .decls: Code: [AUSKLAPPEN] .lib "nvsulib.dll"
GetSystemTemperature%() : "GetSystemTemperatureDll" GetCPUTemperature%() : "GetCPUTemperatureDll" GetGpuAmbientTemperatureDll%(n%) : "GetGpuAmbientTemperatureDll" GetNforceFanSpeed%(): "GetNforceFanSpeedDll" GetCPUFanSpeed%():"GetCPUFanSpeedDll" GetGpuCoolerLevelDll%():"GetGpuUtilizationPercentageDll" Die dll ist bei der nVidia-Systemsteuerung (gratis) bei gewesen. Leider habe ich das Auslesen der GPU-Temperatur. nVidia hatte zwar eine PDF-Doku mal angeboten, aber das funktioniert nicht mehr - oder ich bin zu doof. Wenn Interesse besteht, kann ich sie mal hochladen. |
||
-~= real coders just code in binary =~- |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cool, von der lib habe ich schon gehört ![]() Habe zwar keine nVidia-Karte, aber dafür einen nFrorce Chipsatz ![]() Unter welcher Lizenz steht diese Userlib denn?? Gruß Bastian |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei meinem Billigchipsatz funktionierts zu 100% nicht.
CPU Temperatur: 255 °C ??? Mfg Nicdel |
||
ungebildeter Neuling |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
cool vielen Dank, bei mir gehts auch
hab ASRock P4i65G, MSI MS-6701 (Medion OEM) und QDI Advance 9 kannst den Code auch so umschreiben,dass es auch die Temperatur vom Motherboard und der Festplatte anzeigt? |
||
- Zuletzt bearbeitet von ungebildeter Neuling am So, Sep 28, 2008 10:58, insgesamt 3-mal bearbeitet
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
bei derfestplatte wird es nciht gehen....
mir ist keine festplatte bekannt die einen themperatursensor hat.. |
||
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ barrator: Wie es mit der Verwendung der DLL aussieht, musst du nVidia fragen, aber ich denke für Freeware darf man sie verwenden, da sie immerhin eine API-Doku bereitstellten. Meinen Code könnt ihr aber frei benutzen.
@ da_poller: Also meine drei Festplatten haben je einen Sensor und Tools wie Everest oder HDD Thermometer lesen die auch ohne Probleme aus. Die meisten Festplatten haben nämlich S.M.A.R.T., womit sich die Daten auslesen lassen. |
||
-~= real coders just code in binary =~- |
- Zuletzt bearbeitet von BadDeath am So, Sep 28, 2008 10:52, insgesamt 2-mal bearbeitet
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mainboard hab ich schin geschrieben ![]() Die Mainboard Temperatur liegt im register $27, d.h. ReadData($27) = Mainboardtemperatur Die HDD Temperatur geht nur über SMART, dazu gibt es dann aber auch noch eine menge andere Infos. Das ist allerdings eine DLL und passt nichtmehr ganz ins CodeArchiv... Achja, wenn die CPU Temperatur 255°C ist, ist es vermutlich nicht richtig ![]() gruß Bastian |
||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: @ da_poller: Also meine drei Festplatten haben je einen Sensor und Tools wie Everest oder HDD Thermometer lesen die auch ohne Probleme aus. Die meisten Festplatten haben nämlich S.M.A.R.T., womit sich die Daten auslesen lassen.
interessant... hab ich gar nciht gewust bzw vermutet.. werd ich mir bei meinen auch mal ansehen obwohl es sinnlos wäre da der rechner eh immer eiskalt ist..^^ |
||
ungebildeter Neuling |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ barratator: seit deiner Ändereung geht der code irgendwie nicht mehr
edit achso, du hast den code einfach unter den alten kopiert |
||
Theorie ist, wenn man alles weiß, aber nichts funktioniert.
Praxis ist, wenn alles funktioniert, aber keiner weiß warum. Meine Kunstwerke vereinen beides, nichts funktioniert und keiner weiß warum. |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, tschuldigung, wollte ich nicht ![]() Wär schon wenn auch andere mal, bei denen das nicht klappt, versuchen würden für ihre Chips was zu schreiben ![]() gruß Bastian |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir geht der Fan Temp in etwa , doch der VCore stimmt ned ganz, jedoch der Rest von den Spannungen schon.
MB temp stimmt doch CPU schwankt rapide zwischen 70 und 130 ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Welcher Chip? | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
barratator hat Folgendes geschrieben: Welcher Chip?
Steht oben (@home) also p5k-c von asus, meinste doch oda ? ![]() Hab die libary im net gefunden, für alle die es mal ausprobieren wollen nvsulib.dll Edit : Bekomme beim Beispiel von Baddeath eine Temp anzeige von -13000 beim Cpu und bei MB ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
BadDeath |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuche mal die richtigen Werte mit Everst o.Ä. auszulesen und pass die Werte an, die von den Temperaturen abgezogen werden müssen bei meinem Beispiel. Bei mir haut es jedenfalls hin...
Vielleicht hast du auch gar keinen nForce-Chipsatz drauf? |
||
-~= real coders just code in binary =~- |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich bekomme ebenfalls keine richtigen Werte raus, obwohl ich einen nForce Chipsatz habe...
Gruß Bastian |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab keinen Nforce chip, nur nen Nforce internet controller, werd das mal abklären, im büro hab ich nen nforce chip (430 glaubs) ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
barratator |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab meinen Code grade auf einem Asus K7VT4A Pro getestet, läuft ohne Probleme ![]() Gruß Bastian PS: Wär wirklich schon, wenn ihr auch für eure Chips soetwas schreiben würdet, damit es zu einer Art Sammlung kommen kann ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group