Autor |
AVR 2313 direkt vom RS 232 byteweise mit daten versorgen |
|
|
|
|
BID = 45952
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
|
Hi, will den 2313zwecks schrittmotoransteuerung byteweise mit daten von einem meßrechner versorgen. Habe mir dazu bascom avr besorgt. Leider sind microcontroller und das dazugehörige Bascom vollkommen neu für mich, hat vielleicht einer von euch nen Beispiel programm zu diesen problem?
Mfg Maschinchen. |
|
BID = 46105
Jornbyte Moderator
Beiträge: 7178
|
|
Ja, wird aber erst am Montag.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten. |
|
BID = 46587
Jornbyte Moderator
Beiträge: 7178
|
Haste mal in die Bascom-Hilfe geschaut. Da sind 4 Beispiele drinne.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 46660
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
Ja danke für den tip, aber ehrlich gesagt kam ich mit denen nicht ganz klar oder erachtete sie als nicht passend.
wie gesagt bin im bascom ein totaler anfänger.
Der controller soll eine positionsnummer in bytes codiert empfangen, die ich wieder in ein integer umwandle.
Danach wollte ich den schrittmotor auf diese position fahren und dann sollte der controller auf die nächste position warten und sie anfahren.
Gleichzeitig wollte ich die aktuelle position im eprom speichern, damit mein 2313 immer weiß wo der motor steht.
ich stelle morgen noch mein quelltext online, vielleicht hat einer von euch ein paar entscheidende hinweise für mich.
bis dahin, MfG Maschinchen.
|
BID = 46661
Jornbyte Moderator
Beiträge: 7178
|
Stelle bitte auch die Schaltung mit rein, sonst wird es Mist.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 47116
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
hier sind nun die beiden meisterwerke.
die schaltung ist von nem kollegen, meine sache ist die programmierung.
mein 2313 bekommt seine daten über den P01.
Die ansteuerung des Schrittmotors erfolgt über den L297 bzw L298 (muß ich mir noch anlesen, weiß noch nicht wie das geht.)
Ein anderes problem ist noch die daten in das programm zu bekommen.
Ich habe einen 4 byte großen puffer programmiert, der ständig auf passende bytefolgen getestet wird.
Ich weiß halt nicht wie ich die vier byte mit meinen seriellen daten fülle.
Ich hoffe auch mal, daß die eprom-geschichte sauber programmiert ist.
wenn einer eine passende idee hat, wäre ich glücklich und dankbar.
Die seriellen sachen sind aus nem beispiel kopiert, aber selbst maschinenbau-studenten können ja nicht gleich mit allen sachen klar kommen.
Die sachen müssen halt noch irgendwie verwurstet werden.
MfG maschinchen.
http://www.tu-ilmenau.de/~jepa-mb/2313.bas
http://www.tu-ilmenau.de/~jepa-mb/SMSt.sch
[ Diese Nachricht wurde geändert von: maschinchen am 7 Jan 2004 21:19 ]
|
BID = 47118
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
[ Diese Nachricht wurde geändert von: maschinchen am 7 Jan 2004 21:09 ]
|
BID = 47161
Jornbyte Moderator
Beiträge: 7178
|
Ich schaus mir mal an. Die Schaltung ist nicht zu laden. Was ist das für ein Format?
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 47175
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
Die schaltung geht mit:
E A G L E - L A Y O U T - S O F T W A R E
Version 4.11
zu laden (Schematic).
Findest du im netz, einfach bei google nach
eagle-4.11e.exe suchen.
Mfg maschinchen.
[ Diese Nachricht wurde geändert von: maschinchen am 8 Jan 2004 0:34 ]
|
BID = 47386
Jornbyte Moderator
Beiträge: 7178
|
Habe da die 4.09 (VV). Das Demo der 4.11 will ich nicht Installieren.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 47417
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
Du konntest es quasi nicht öffnen,
aber wie kann ich es dir sonst zugänglich machen?
Ist glaube ne standartschaltung mit dem 2313, dem L297, dem L298 und dem max232.
Mfg maschinchen.
|
BID = 47420
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| aber wie kann ich es dir sonst zugänglich machen? |
Vielleicht als ps-Datei fürn Postscript-Drucker. Jörgen kann das lesen.
|
BID = 47465
maschinchen Gerade angekommen
Beiträge: 8 Wohnort: Sömmerda
|
|
BID = 48440
Jornbyte Moderator
Beiträge: 7178
|
So, aber nu. Als 1. solltest du Bascom sagen was du für einen µC einsetzen willst. Das sieht so aus:
$regfile = "2313def.dat"
Nun der Quarz:
$crystal = 8000000
Und die Baudrate:
$baud = 9600
An dieser Stelle und vor allen anderen Variablen sollte das Uart-Buffer eingerichtet werden. Der Vorteil liegt darin, dass der zu verwendete Speicher gleich am Anfang des Ram liegt.
Config Serialin = Buffered , Size = 4
Nun kommen deine Variablen:
Dim Var1 As Byte
Dim Var2 As Byte
Dim I As Word
Den Interrupt einschalten:
Enable Interrupts
Nun wird von der Uart gelesen:
Inputhex Var1
Die gelesenen Daten werden in das Buffer geschrieben und da willst du ja rann.
Das geht aber nur, wenn -Config Serialin = Buffered , Size = 4- gleich am Anfang des Programms steht, oder du bemühst den Simulator um nach dem Anfang des Buffer zu suchen.
I = &H0060 ‘in die Variable I den Anfang der Ramadresse laden.
Var2 = Inp(i) ‘ mit Inp(i) wird der Inhalt des Ram gelesen und steht nun in Var2.
I = I + 1 ‘ Zeiger erhöhen (geht auch mit For – Next oder andere Schleifenbefehle)
Das ist eigentlich alles.
Happy Fingerklopfauftaste.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 48449
Jornbyte Moderator
Beiträge: 7178
|
Vergessen, man wird alt
Da du (nach jetzigem Plan) keine Nullstellung der Motoren hast, brauchste eigentlich den EEProm nicht. Um den zu beschreiben wird WRITEEEPROM var , address verwendet. Damit da nix schief geht oder durch das Uart gestört wird, sollte der Interrupt aus sein
Disable Urxc 'Uartempfang aus
Writeeeprom Var2 , I 'EEProm schreiben; READEEPROM =lesen
Enable Urxc 'Uartempfang ein
Beim lesen ist es das gleiche.
Mit der Motorsteuerung habe ich mich noch nicht beschäftigt. Überdenke da noch mal eine Nullstellung (Optokoppler, Mikroschalter...).
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|