Hallo allerseits, ich bin PIC Anfänger, und habe die Schaltung unter http://elektronik.kai-uwe-schmidt.de/index.php?page=pic_thermometer nachgebaut, bei der Kai Uwe Schmidt auch den Source-Code zur Verfügung gestellt hat. Der PIC16F84A soll hier alle Zeiteinheiten die umgerechnete Temperatur des digitalen Temperatursensors DS18S20 ausgeben. (Die dann z.B. mit einem Terminalprogramm eingelesen werden kann) Nun habe ich hierfür einen PIC16F630 hergenommen (lag gerade rum, und wegen einen PIC kann ich nicht extra bestellen). Daher habe ich die Software (Orignial: mess.asm) entsprechend modifiziert (Datei im Anhang) Das Problem ist aber, dass ich im Terminalprogramm (Hyperterminal) ca. alle 1 Sekunde was empfange, jedoch totalen Schmarn, z.B. $%-0521452 Wenn man in die Software schaut, dann müsste folgendes gesendet werden: Temperatur: XX.X0 oC als TX Pin benutze ich RC1, als RX Pin benutze ich RC0, die Datenleitung des DS1820 liegt auf DQ. Hardwarebeschaltung habe ich schon 100 mal kontrolliert. Stimmt alles Es muß an der Software liegen, bei der ich den Fehler einfach nicht finden kann. Bin am Verzweifeln. Noch einen Anmerkung: Ich benutze einen DS1820 und nicht einen DS18S20 wie bei Kai Uwe. Das dürfte aber nichts machen, da wenigstens der Text "Temperatur" richtig gesendet werden müsste. Ich vermute es liegt an der Software UART-Schnittstelle. Wenn mir ein echter Crack bei dem Assembler Programm weiterhelfen könnte wäre super. Vielen Dank schon mal für Hilfen. Gruß Jan
Hast du die richtige Baudrate in deinem Terminalprogramm eingestellt?
Hallo Henrik, ja die richtige Baudrate ist eingestellt: 9600, 8, N, 1 Als Quarz nehme ich den internen 4MHz Oszillator, der ja hinreichend genau sein dürfte (+- 1%). Für Hilfen wäre ich sehr dankbar. Gruß Jan
Hallo, ich hatte schon das Problem, dass der interne Quarz (3,9 MHz) nicht genau genug war -> in das Baudratenregister musste ein anderer Wert (als die in der Datenblatt-Tabelle) eingetragen werden. -> Lass dir den Takt ausgeben (Clockout) und messe
Carsten Steiner wrote: > Hallo, > ich hatte schon das Problem, dass der interne Quarz (3,9 MHz) nicht > genau genug war MCs mit internem Quarz gibt es nicht. Die haben nur nen RC-Oszillator drin und der ist eben nicht mit einem Quarz vergleichbar. Peter
Entschuldigung, meinte Oszillator (sag ich leider immer falsch). Ändert aber an dem Problem von Jan nichts. Wollte nur sagen, dass man sich nicht 100% auf die interne Taktquelle verlassen kann und ich denke, dass das Problem beim Systemtakt liegt.
hast Du berücksichtigt, daß der 16f630 Analogeingänge hat, die deaktiviert werden müssen? Gruß LazyBee
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.