Forum: Mikrocontroller und Digitale Elektronik Daten vom PC auf den Mikrocontroller


von Sebastian (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

>  Dazu benutze ich die Java Communications API,
> was auch gut funktioniert.

Spricht die eine serielle Schnittstelle an?

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

von Florian (Gast)


Lesenswert?

Hallo!

Mich würde das Java programm interessieren.

kannst du das online stellen?

mfg flo

von Florian (Gast)


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

von Sebastian (Gast)


Angehängte Dateien:

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.

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Joe (Gast)


Angehängte Dateien:

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

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
Noch kein Account? Hier anmelden.