Hallo zusammen, ich würde gerne einen RTC (PCF8583 oder DS1337) mittels RS-232 stellen. Die Uhrzeit und das Dateum sind im Baustein als unsigned int gespeichert. Die Funktionien funktionieren auch problemos. Nun würde ich gerne eine Funktion hizufügen. Datum und Uhrzeit per PC (RS-232 Schnittstelle) einstellen. Leider kann der C18 keine unsigned int direkt empfangen, und die CAST Funktion arbeitet nicht sauber. Hat jemand eine Idee? Bin gerade mit einem Array am experimentieren. Danke und Gruß Ingo
Ingo Schick schrieb: > Nun würde ich gerne eine Funktion hizufügen. Datum und Uhrzeit per PC > (RS-232 Schnittstelle) einstellen. Bei Verwendung der RS-232 Schnittstelle wirst du dich auf die Übertragung von einzelnen Bytes einrichten müssen, d.h. du mußt deine zu übertragenden Daten in eine Kette von Bytes umformen, mit Start- und/oder Stopzeichen versehen, übertragen und beim Empfänger den Übertragungsrahmen wieder von den Nutzdatenbytes trennen. Dann kannst du wieder deine unsigned int, wieviele Bytes auch immer die bei C18 haben, zusammensortieren und damit deine RTC füttern.
Ingo Schick schrieb: > Leider kann der C18 keine unsigned int direkt empfangen, Wie sollte er auch? Bei RS232 werden einzelne Bytes übertragen. > und die CAST Funktion arbeitet nicht sauber. Was immer das heißen mag... > Hat jemand eine Idee? Am elegantesten ist es, bei sowas gar nicht direkt Binärdaten, sondern Text zu übertragen. Dann kannst du zur Not auch mal von Hand mit einem seriellen Terminal dran. Das hat den Vorteil, daß du die µC-Seite der Übertragung erstmal komplett fertig machen kannst, ohne die andere gleichzeitig zu bauen. Wenn man eine Übertragung programmieren muß, bei der beide Seiten von Anfang an vorhanden sein müssen, mußt du bei einem Fehler immer erst rausfinden, auf welcher Seite der jetzt aufgetreten ist.
Ingo Schick schrieb: > (PCF8583 oder DS1337) > Die Uhrzeit und das Dateum sind im Baustein als unsigned int > gespeichert. > und die CAST Funktion arbeitet nicht sauber vielleicht habt ihr (du, der Compiler und die Hardware) unterschiedliche Ansichten, was ein unsigned int ist. Die Bausteine benutzen das BCD-Format, das kann man nicht sinnvoll casten.
Hallo, Du Umwandlung von Integer nach BCD funktioniert. Wie schon die Vorschreiber beschrieben haben geht es mir um eine saubere Übertragung von Bye nach Integer. Da muss ich wohl etwas mehr Zeit einplanen. Danke und Gruß an Alle
Es ist wohl eher so, wie meistens. Du wirst wohl nicht umhin kommen, erst mal vernünftig C zu lernen.
Ingo Schick schrieb: > Du Umwandlung von Integer nach BCD funktioniert. na, das ist doch schon die halbe Miete für die RS-232-Übertragung. Vom Terminalprogramm auf dem PC kommen ASCII-Zeichen an. Jedes Zeichen entspricht genau einer BCD-Ziffer aus der RTC. Du musst nur noch aus der ASCII-Eins eine BCD-Eins machen indem du '0' (0x30) subtrahierst.
Hab den den Veursacher entdeckt. Die Schnittstelle sendet korrekt. Im Conroller werden allerdings die Daten anders interpretiert. Auf einem anderen PIC-Typ läuft das selbe Programm seltsamer weise ganz normal. Danke nochmal für die Unterstützung.
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.