Daten vom PC auf den Mikrocontroller

Gast #614272
Lesenswert?

Hallo,

ich habe einen AT89c51rc2. Ich möchte Daten von einem Java-Programm auf 
den Mikrocontroller spielen. Dazu benutze ich die Java Communications 
API, was auch gut funktioniert. Mein Problem ist jetzt jedoch zu wissen, 
wo die Daten im Mikrocontroller hinkommen bzw wie mein Assembler-Code 
aussehen muss, um die übertragene Zahl in den Akku zu laden.

Würde mich über Antworten freuen. Danke.
Gast #614278
Lesenswert?

>Spricht die eine serielle Schnittstelle an?

>Dann wirst Du auch auf Deinem µC die serielle Schnittstelle ansprechen
müssen.

Da hat er recht, wenn das so ist.
Gibts ein beispiel programm im Datenblatt des Controllers (super Atmel)

mfg Florian
Gast #614651
Lesenswert?

Ja, ich spreche die serielle Schnittstelle an und habe auch bereits die 
entsprechende Datei gefunden, mit der es laut Atmels Documentation 
möglich sein soll die empfangen Daten weiterzuverarbeiten. Leider 
empfängt der Mikrocontroller jedoch offensichtlich immer noch nichts, 
obwohl das Java-Programm seinerseits auch meldet, dass alles 
funktionieren müsste.

Als ich mir mal die Kommentare aus dem Programm der Documentaton 
angeschaut habe, sind mir die Folgenden Angaben aufgefallen:

              /* uart in mode 1 (8 bit), REN=1 */
              /* BRR=0; SRC=0; */
              /* TBCK=1;RBCK=1; SPD=0 */
              /* 9600 Bds at 11.059MHz */

Bei einem Java-Programm sind ja aber lediglich die Baudrate (9600), die 
Datenbits (8), die Stopbits (1) und die Parität(keine) einzustellen. 
Ligt das dann vll. daran, dass diese REN, BRR, SRC, TBCK,RBCK oder 
SPD-Bits (was auch immer das ist) falsch eingestellt sind?

Gruß
Sebastian


PS: Florian, dass Java-Programm habe ich angehängt. Orientiert sich 
stark an dem Beispiel von SUN. Unterschied: Bei meinem wirst du dannach 
gefragt, welche Zahl du übertragen willst.
Angehängte Dateien:
Persönliche Seite #614698
Lesenswert?

Nun, welche Bedeutung die verschiedenen Bits haben, steht im Datenblatt 
des Controllers. Sie werden schon korrekt sein.

Jedoch: Ist sichergestellt, daß der Controller auch wirklich mit dem 
externen Takt von 11.059MHz läuft? Fuses korrekt programmiert und auch 
den richtigen Quarz angeschlossen?

Ist die serielle Schnittstelle des Controllers auf die korrekte Art & 
Weise mit der des PCs verbunden? (Pegelwandler etc.)

Hast Du mal ein Testprogramm auf dem Controller laufen lassen, das 
einfach nur irgendwelche Texte zyklisch auf der seriellen Schnittstelle 
ausgibt und das mit einem Terminalprogramm auf dem PC verifiziert?
Gast #614705
Lesenswert?

Ziemlich wirr, kannst du mal deinen ASM sourcecode für den AT89c51rc2 
hereinstellen ? ich kann keinen Code für den MC erkennen.

Hast du schon mal einen MC programmiert ?

Ich hab dir mal nen ASM Code für den AT89S8252 angehängt, bis auf die 
Baudrate sollte der Code passen. Allerdings war das mit 12 MHz / 9600 
Baud, bei einem 11,059 MHz Quarz also den Timer anpassen.

Baudrate siehe:

http://www.keil.com/c51/baudrate.asp
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren