Frage zum auslesen der Temperatur

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zum auslesen der Temperatur

    Hallo alle miteinander
    ich soll einen fehler im quellcode finden da er sagt das die cpu temperatur bei -1 grad liegt
    meine frage währe: was ist das rot markierte und die andere ist könnte es sein das er einfach nicht celcius nimmt sondern eine mir unbekannte maßeinheit kelvin oä
    das rote muss ja irgndwas mit der ausgabe zu tun haben aber wie genau das jetzt zu stane kommt ist mir ein rätsel (habe so etwas auch nie vorher gemacht)

    // temperatur:
    outb(0x29,LPC_INDEX); //read out CPU temp
    cputemp = inb(LPC_DATA);
    outb( 0x2A,LPC_INDEX); //read out Ambient temp
    ambtemp = inb(LPC_DATA);
    printf("%3d %3d\r", cputemp, ambtemp); //printout to the screen
    fflush(stdout);
    sleep(1);

    danke schonmal im vorraus

    Grinchi
  • Quellcode

    1. fflush(stdout);

    Autsch.... stdout wird nicht gebuffert.
    cboard.cprogramming.com/c-prog…/98138-fflush-stdout.html

    Quellcode

    1. printf("%3d %3d\r", cputemp, ambtemp); //printout to the screen

    Ja, das ist die Ausgabe der Temperatur. Die Parameter sind soweit auch völlig korrekt.
    %d steht für eine ganze Zahl mit Vorzeichen.
    cplusplus.com/reference/clibrary/cstdio/printf.html

    Der Fehler muss also beim auslesen (outb, inb) passieren und -1 ist als Fehlerwert ok. Das hat nix mit der Temperatur zu tun sondern ist in C ein gern verwendeter Fehlerwert.
    Und wenn bekommt man afaik die Temperatur in Fahrenheit.

    Wie man das in C genau macht, weiss ich nicht, aber es sollte mit WMI möglich sein auf Windows. Einfach mal google bemühen.
    MfG
    Sometimes it pays to stay in bed in Monday, rather than spending the rest of the week debugging Monday's code. ~Dan Salomon