Hallo Siro,
So habe mich mal wieder angeklemmt ^^

Das der Widerstand schwankt war mir klar... jedoch nicht dass der so stark währenddessen schwankt. Ich dachte immer es wäre von Stück zu Stück verschieden... OK Fehlannahme... Danke.

Deine Funktion ADC_read soll einen "unsigned char"
Oh... das ist noch von dem PIC18F45K20 aus dem DemoBoard Habe ich total übersehen! Habe nun ein einfaches "void" draus gemacht da es ja keinen return-befehl gibt.

Aber wie ich deiner Funktion entnehme liefert sie garnichts zurück. oder da fehlt ein Stück Code, kann ja sein.
Oder Du wertest denn temp2 Wert direkt aus, das kann ich deinem Code jetzt nicht entnehmen, aber ich hoffe er ist auch als 16 Bit Wert definiert.
Also die temp2 wird ganz vorne unter "* F I X E D V A R I A B L E S" festgelegt (die habe ich rausgelassen... trage ich nach!). Die Funktion soll den Wert nur in die temp2 schreiben und fertig. Einen Rückgabewert gibt es nicht.
Alles weitere wird dann in der Funktion therm() in ein Sichtbares Bildchen umgerechnet und auf die 5 DotMatrix Segmente abgefeuert.

warum schiebst DU den ADRESH 6 mal links ?? Du überschreibst Dir Bit 6 und 7
Das ist eine der von mir beschrieben stellen wo ich einfach mal rumprobiert habe... Ich wollte damit in der Manipulation was testen... evtl. wäre der Fehler wo anders gewesen.

Das mit dem Timing habe ich ehrlich gesagt noch nicht so ganz verstanden!
Dort habe ich zuerst meinen Fehler gesucht. Ich denke du hast mich da ein Stück weiter gebracht... So ganz ist es mir aber noch nicht klar...
Also die FOSC/16 habe ich mit meiner Rechnung nur zufällig erreicht... verstanden aber nicht...


Ist bin nun deine Tips und Ideen durchgegenagen und meinen Code überprüft und geändert.
Ich habe nun mal einige Zeit die Werte beobachtet und aufgeschrieben.

Code:
ADRESH    |    ADRESL    |    temp2    |    meine Anzeige
0x01           0x43           0x0075        117
0x01           0x3c           0x006E        110
0x01           0x40           0x0072        114
0x01           0x42           0x0074        116
0x01           0x3D           0x006F        111
Also wenn ich 0x0075 umrechne komme ich auch auf 117... Also meine Anzeige passt schon mal. Gut, da ist kein rechenfehler!

Wie man sieht schwank dieser zwischen 111 und 117. Also passt es irgendwie... aber sind dies nicht die von mir erhofften Werte

Ein weiterer Test der zuvor immer fehl geschlagen ist: Temp fühler stark erwärmen oder abkühlen. Ich habe ihn einfach mal in die Hand genommen und auf 1,520V gebracht (Zuvor 1,458V) dort waren die Werte nun zwischen 120 und 129.

So, Ich danke dir erst mal und hoffe dass du mir noch bei dem letzten Problem helfen kannst, warum meine Werte zu klein sind...