Hallo, wir kommen mit unserem Schulprojekt einfach nicht weiter. Wir
möchten den Sensor DS18S20 von Dallas mit unserem µC AT89C51ED2 von
Atmel, der mit 12MHz arbeitet, auslesen und auf LCD ausgeben.
Wir erhalten nach dem Reset den Presence Pulse vom Sensor, wissen jedoch
nicht ob der Skip ROM Befehl überhaupt ankommt. Wir erhalten keine
Bestätigung nach Convert T.
Das ganze versuchen wir in Assembler zu realisieren. Uns wird langsam
die Zeit knapp. In einer Woche ist Abgabe und wir stehen total aufm
Schlauch.
Hier mal den Code soweit, er ist leider nich optimiert, da es uns wegen
Zeitmangel erstmal auf die Funktion ankommt. Es ist also ein rein
linearer Ablauf...bitte nicht beschweren.:
Du liest P1.0 ein, schreibst aber auf P3.7, das kann nicht gehen.
1-Wire heißt nicht umsonst "ein draht", d.h. lesen mußt Du auch von
P3.7.
Und wo hinein rennt das Programm am Ende ?
"SJMP $" muß ans Ende.
Das Convert-Bit hab ich nie gelesen, hab immer 1s gewartet. Bin mir aber
ziemlich sicher, daß es so nicht geht.
Lies doch einfach mal den Device-Code aus.
Peter
Hy,
also das mit dem P1.0 einlesen und p3.7 ausgeben war zu testzwecken.
Aber warum sollte das nicht gehn? Normalerweise ist es dem Sensor doch
egal von welchem Port gelesen und geschrieben wird, oder?
Klär mich bitte auf, wenn ich falsch liege!
Das Abfragen ob die 1 von Convert T kommt, war ebenfalls nur zum
Testzweck, ob dort überhaupt irgendwas gemacht wird! Im Normalfall
warten wir dort auch einfach nur.
Zum Thema Leerlauf: der obige Code ist nur ein Ausschnitt. Im Anhang ist
aber der komplette Code des Programms. Das Prog hat schon sein Ende usw.
Hoffe uns kann irgendwer weiterhelfen.
Gruß Wonk
moin moin,
in Anhang mal mein DS18S20 Treiber, schaut mal ob ihr davon was brauchen
könnt.
Sorry, hab Streß auf Arbeit und nicht viel Zeit...
Mit Gruß Pieter
Die sieht schonmal nicht schlecht aus, aber was ist das für ne macro.inc
(kannst die vielleicht auch anhängen?) und was ist mit DS18S20_PORT
gemeint.
Einmal wird das als Bit gehandhabt und das anderemal als Byte. Das
schluckt mein µC nicht.
Dankeschön
moin moin,
so, nun noch mal den DS18S20.
Das Modul arbeitet mit maximal 8 Sensoren am DS18S20_PORT
Leider gibt es keinen indizierten Bitbefehle, daher der Umweg mit der
Maske in B und den Port als Byt bearbeiten.
>Einmal wird das als Bit gehandhabt und das anderemal als Byte.>Das schluckt mein µC nicht.
Der soll nicht schlucken, sondern das macht was im Prog steht!
Mit Gruß Pieter