Hi Chris,

der wkrug hat doch schon sehr gut beschrieben, was Du machen mußt.

Da der MAX6675 allerdings nur Daten sendet, und sebst keine empfangen kann, ist die Programmierung noch einfacher.

Also, nochmal der Ablauf:

die drei Leitungen an beliebige freie Ports, die vom ISP würde ich persönlich nicht nehmen.

CS und SCK werden Ausgänge an Deinem mega32, den Port am SO definierst Du als Eingang.

Die Initialisierung von Deinem Programm schaltet dann erstmal CS auf H und SCK auf L.

Das Auslesen der Temperatur startest Du, indem Du CS auf L schaltest.
Anschließend schaltest Du SCK auf H. Am Port, an dem SO hängt, kannst Du nun das bit D15 einlesen. Ein Blick ins Datenblatt verrät Dir, das dieses bit immer als 0 gesendet wird. Also ignorierst Du das einfach, und schaltest SCK wieder auf L.
Da als nächstes die interssanten Datenbits kommen, wäre jetzt eine Schleife angebracht. Also wieder SCK auf H schalten, und SO einlesen. Dieses bit (D14) steht jetzt für den Wert 2^9, also 512. Ich denke mal, das Du in Basic programmieren solltest. Dann würde ich es so machen, das ich eine Variable nun mit diesem Wert addiere, wenn eben das bit eins ist.
Anschließend SCK wieder auf L. Und zurück zum Schleifenanfang. das nächste bit (D13) hat den Wert 2^8, also jetzt mußt Du 256 zu Deiner Variable addieren, wenn Du bei SO eine 1 eingelesen hast. So geht das weiter, bis Du bei bit D3 angekommen bist, das den Wert 0,25 darstellt.

Anschließend liest Du genauso noch die bits D2...D0 ein, wertest die aber (erstmal...) nicht aus.

Zum Schluß legst Du CS wieder auf H. Damit beginnt der MAX automatisch wieder damit, die nächste Messung durchzuführen.

Dein Programm hat jetzt Zeit, den Wert in Deiner Variable auszugeben, z.B. auf ein LCD. Dann solltest Du noch eine kleine Warteschleife einbauen. und dann beginnt das ganze Spiel von vorne. Vorher nicht vergessen, die Variable für den Wert wieder auf 0 setzen.

Ich lese den MAX ca. 3 x pro Sekunde aus. Wenn man den viel öfter ausliest kommen nur noch Nullen hab ich festgestellt, vermutlich passiert das, wenn man öfter ausliest als der interne Meßzyklus dauert. Die entsprechende Angabe hab ich im Datenblatt allerdings nicht gefunden.

So, nun aber los. Viel Erfolg!!