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.
> 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.
Hallo! Mich würde das Java programm interessieren. kannst du das online stellen? mfg flo
>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
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.