Hallo, habe ein Problem mit dem Temperatursensor. Und zwar rufe ich nacheinander folgende Funktionen auf: reset_pulse skip_rom convert_t reset_pulse skip_rom read_scratchpad reset_pulse Dabei stelle ich fest, das er darin hängenbleibt. Hab erstmal einzeln getestet, reset_pulse, skip_rom, und read scratchpad verursachen keine Dauerschleife und laufen normal durch, woraus ich schließe dass sie auch richtig sind. Hab den Quellcode hier aus dem Forum: reset_pulse: sbi ddrd, 0 ;pd0 als ausgang cbi portd, 0 rcall wait500us ;mcu hält bus für mindestens 480us low cbi ddrd, 0 ;lässt den bus los, geht in rx-mode rcall wait70us ;wartet 70 us wait_presence_pulse: sbic pind, 0 rjmp wait_presence_pulse ;wartet auf presence pulse wait_presence_pulse_end: sbis pind, 0 rjmp wait_presence_pulse_end ;wartet bis presence pulse fertig rcall wait410us ;wartet 412 us ret skip_rom: ;gibt den befehl "Skip Rom" an den ldi temp1, 0xCC ; sensor aus mov befehl, temp1 rcall write_command ret Bei convert_t wird nun allerdings eine Dauerschleife erzeugt, wodurch das ganze Programm natürlich hängenbleibt. convert_t: ;gibt den befehl "Convert T" an den ldi temp1, 0x44 ; sensor aus mov befehl, temp1 rcall write_command cbi portd, 0 sbi ddrd, 0 ;bus low für 6us rcall wait6us cbi ddrd, 0 ;bus loslassen rcall wait9us ;nach 9us samplen convert_t_1: sbis pind, 0 ;wartet bis conversion zu ende ist rjmp convert_t_1 ret Im Datenblatt steht jetzt noch was davon, dass ich bei parasite power noch für die Zeit t_conv was machen soll. Habe das Teil als Parasite Power angeschlossen. Worauf muss ich da beim Programmieren achten wen ich parasite power, bzw. external supply hab ? Kann mir konkret einer bei dieser Funktion sagen was an der Funktion falsch ist, oder warum es bei parasite power evtl. nicht läuft ? Danke, ChristianR
hab ich schon, stoße da aber auch immer wieder auf den selben quellcode. Wo ich nur nicht so ganz durchblicke ist das mit external power supply und parasite power, und welche Unterschiede ich dann beim programmieren beachten muss ChristianR
Kann mir denn hier keiner weiterhelfen?? Hat denn jemand einen DS1820 verbaut und mittels Assembler programmiert ?? Vielleicht könnte ich mir da die genaue Beschaltung und die Programmierung anschauen. Danke, ChristianR
meinst du diesen Code: Beitrag "Mehrere DS1820/DS18B20 auslesen" den du immer gefunden hast? der geht doch bestimmt. "parasite -powered" heißt - wie der Name sagt, dass der Sensor seine Versorgung aus der Datenleitung "zieht". Das Datenblatt sagt dazu, dass du den Sensor NICHT während der Messung pollen darfst!, du musst diese x _m_s -ja richtig ms, also eine halbe Ewigkeit ;) abwarten musst, bis der sensor fertig ist und in der Zeit darf nichts auf dem Bus passieren.
SO jetzt klappst, den Quellcode hatte ich hier nicht gefunden. Aber da sehe ich wie es gemacht wird, nämlich sehr viel einfacher. Ich sende einfach den Convert Befehl, ziehe dann die Spannung für den DS1820 hoch (parasitepower) und warte einfach 500ms und nicht wie vorher dass ich solange warte bis ich eine "Antwort" vom DS1820 bekomme. Danke, CHristianR
bei "parasite power" gibt der Sensor auch keine Antwort.. Aber schön das es geht :) ps.: diie Suche nimmt auch * als joker, wenn man ähnliche Begriffe haben will (z.B. "DS18*" ;) )
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.