Servo am Parallelport

Diskutiere Servo am Parallelport im Developer Network Forum im Bereich Hardware & Software Forum; Hi Leute, hier kann mir bestimmt jemand helfen! Ich steuere momentan 16 Servomotoren über den Parallelport meines Bastelrechners (DOS). Da...
  • Servo am Parallelport Beitrag #1
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Hi Leute,

hier kann mir bestimmt jemand helfen!

Ich steuere momentan 16 Servomotoren über den Parallelport meines Bastelrechners (DOS). Da das ganze leider nicht ganz ruckelfrei abläuft möchte ich gerne wissen, ob jemand mir sagen kann, wie ich auf den "interen Timerbaustein" zugreifen kann. Wenn möglich mit C oder C++, da das aktuelle Programm in C geschrieben ist. Ich weiß, daß es funktioniert, da ich es mit ner Shareware-Version eines komerziellen Programms ausprobiert habe, die diesen Timer benutzt.

Vielen Dank

SMILEY
 
  • Servo am Parallelport Beitrag #2
yks

yks

Bekanntes Mitglied
Dabei seit
21.01.1999
Beiträge
551
Reaktionspunkte
0
Ort
Hamburg
Hi,

ist es wirklich notwendig auf die Timer zuzugreifen?
Versuche es doch lieber mal über den Timer-Interrupt. Der wird alle 18.2 pro Sekunde aufgerufen ( also 90 mal pro 5 Sekunden).

...yks ;)
 
  • Servo am Parallelport Beitrag #3
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Ich will ja Servomotoren damit steuern, und die benötigen Rechteck-Steuerimpulse. Ist der Impuls zum Beipiel 1 Millisekunde lang, so bedeutet dies Linksstellung des Motors, dauert der Impuls 2 Millisekunden so steht der Motor am Rechtsanschlag. Nach dem Impuls erfolgt ein 18ms dauerndes 0-Signal, bevor der nächste Impuls folgt. Es ist also eine sehr zeitkritische Anforderung an den Rechner. Also wer kann helfen?

Thx

SMILEyY
 
  • Servo am Parallelport Beitrag #4
O

O Love

Bekanntes Mitglied
Dabei seit
08.04.1999
Beiträge
2.286
Reaktionspunkte
0
Was ist das für ein Rechner? Bis zum 486er hast Du nur den Timer-Interrupt, oder eine selbst geschriebene und ausgemessene Zeitschleife (Abzählen der Clock Ticks der Befehle).

Ab dem Pentium gibt es die MSR (model specific registers). Auf 0000:0010 liegt der Time Stamp Counter, der jeden Clock Cycle hochgezählt wird. Damit läßt sich sicherlich was machen.
 
  • Servo am Parallelport Beitrag #5
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Hört sich gut an, es ist ein kleiner Pentium, 133 MHz glaub ich. Wie genau greif ich darauf zu. Bin nur Einsteigerprogrammierer. Gibts da irgendwo Quelltext-Beispiele oder ne gute Doku? Danke

SMILEY
 
  • Servo am Parallelport Beitrag #6
yks

yks

Bekanntes Mitglied
Dabei seit
21.01.1999
Beiträge
551
Reaktionspunkte
0
Ort
Hamburg
Original geschrieben von fuerstfanta
...Es ist also eine sehr zeitkritische Anforderung an den Rechner.
Na dann würde ich da nicht gerade mit DOS und irgendwelchen Schleifen arbeiten. Der Einsatz eines Echtzeit-Betriebsystemes wäre dafür besser geeignet (QNX, RT32, RMOS...) und eine entsprechende Programmstruktur ohne Schleifen.

...yks ;)
 
  • Servo am Parallelport Beitrag #7
O

O Love

Bekanntes Mitglied
Dabei seit
08.04.1999
Beiträge
2.286
Reaktionspunkte
0
Original geschrieben von fuerstfanta
Wie genau greif ich darauf zu. Bin nur Einsteigerprogrammierer. Gibts da irgendwo Quelltext-Beispiele oder ne gute Doku?
Nun ja, da kommst Du nur mit Assembler ran. Ich kann Dir ein paar mehr Sachen aus meiner ASM-Doku mitteilen, aber praktische Beispiele hab ich leider keine. Vielleicht hat sich da einiges seit 1996 getan, kannst ja mal nach dem Stichwort "model specific registers" googlen.
 
  • Servo am Parallelport Beitrag #8
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Hi.

Also erstmal zu yks...

ich wollte mich vor einiger Zeit schonmal mit RTLinux (Real Time Linux Echtzeitsystem) auseinandersetzen. Da ich aber Linux-technisch nicht so bewandert bin, bin ich schon an der Installation gescheitert. Ich wäre auch für eine Doku diesbezüglich dankbar.

Zu O Love...

Assembler klingt gut, ich möchte nämlich in geraumer Zeit sowieso vom PC ganz weg zum Microcontroller. Das würde ja dann praktisch schon passen. Der Microcontroller liegt auch schon hier, ich hab nur im Moment klausurenbedingt keine Zeit mich darum zu kümmern.

Thx

SMILEY
 
  • Servo am Parallelport Beitrag #9
O

O Love

Bekanntes Mitglied
Dabei seit
08.04.1999
Beiträge
2.286
Reaktionspunkte
0
Mikrocontroller, basierend auf welchem Proz? Meine Infos funktionieren nämlich nur auf Pentium aufwärts.

Wenn Du weiter an ASM-Infos interessiert bist, schick mir 'ne Mail, Adresse steht bei mir im Profil.
 
  • Servo am Parallelport Beitrag #10
the_viper

the_viper

Bekanntes Mitglied
Dabei seit
27.11.2000
Beiträge
1.977
Reaktionspunkte
0
Habe mir letzten Sommer auch mächtig einen abgebrochen, mit einem C51er Microcontroller 2 Servos anzusteuern und viel Zeit vergeudet. Nach einer Weile bin ich nämlich auf das hier gestoßen : klick!
Ich hab den Chip zwar noch nicht getestet, aber der niedrige Preis spricht gegen jeden investierten Zeitwaufwand. ;)
 
  • Servo am Parallelport Beitrag #11
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Vielen Dank für den guten Tip mit dem Servo-Baustein. Das ist sicher eine große Erleichterung. Jetzt muß ich nur noch auf die Reihe kriegen meinen Controller zu programmieren. Könnt Ihr mir da vielleicht noch ein paar Tips geben, welcher Compiler da für Einsteiger am besten geeignet ist. Momentan hab ich die Demoversion des Raisonance Raid Compilers. Damit komm ich aber irgendwie gar nicht klar.

Nochmals Danke an alle für die Hilfe

SMILEY
 
  • Servo am Parallelport Beitrag #12
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Ich würd das am ehesten mit einem AVR von Atmel machen.
Den kannst du dann per RS232 vom PC aus steuern.

Für die Dinger gibts einen guten C-Compiler und super Unterstützung inkl. IDE von Atmel.

Und das Ding hat garantiert keine Probleme, das Timing einzuhalten. ;)

Degi
 
  • Servo am Parallelport Beitrag #13
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Das Controllerboard mit dem 80C552 hab ich ja schon. Ich will ja jetzt nicht nochmal umsteigen. Ich würd schon gerne bei dem bleiben. Ich hab den Prozessor mit 22 MHz statt mit 11 getaktet. Läuft stabil und müßte die zeitkritischen Anforderungen doch auch meistern können, zumal das ja auch nicht so schwierig ist, falls ich es mit dem von the_viper empfohlenen Servo-Baustein überden I²C-Bus löse!

SMILEY
 
  • Servo am Parallelport Beitrag #14
the_viper

the_viper

Bekanntes Mitglied
Dabei seit
27.11.2000
Beiträge
1.977
Reaktionspunkte
0
Falls Du mit dem I2C Bus nicht klarkommst, hier eine Seite mit einem C51 Codegenerator für die Initialisierung sämtlicher Schnittstellen, auch I2C : klick!
 
  • Servo am Parallelport Beitrag #15
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Wie gesagt... im moment komm ich noch mit gar nix klar... aber was nicht ist kann ja noch werden... vielen Dank für den Link

SMILEY
 
  • Servo am Parallelport Beitrag #16
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
In welcher Sprache programmierst du den 80C552?

btw.: Falls du trotzdem den Computer nehmen möchtest, du könntest vermutlich auch den Servocontroller am LTP anschließen und dort I2C in Software machen.

Degi
 
  • Servo am Parallelport Beitrag #17
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Ich hab mich noch nicht genauer damit auseinandergesetzt, aber ich wollte es in C versuchen. Nur komm ich halt momentan mit den raisonance compiler nicht zurecht. Ich könnte auch assembler, da kenn ich zwar nur die befehle für den Motorola 68000, aber soviel unterschiede sind da ja nicht. Nur für komplexere anwendungen ist c wahrscheinlich geeigneter.

Ich würde den Servocontroller schon lieber mit dem MC laufen lassen, damit ich nicht immer den ganzen Rechner mitschleppen muß, falls ich mal irgendwo die Lichteffekte (mit den Servos)aufhänge.

Aber trotzdem, wie würde ich einen I²C am LPT realisieren ???
 
  • Servo am Parallelport Beitrag #18
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Wenn es komplizierter ist, würd ich wohl auch zu C tendieren. Leider kenn ich nur die Atmel-Controller und deren C-Interface. btw: Für die AVR-Familie brauchst du kein Development-Board usw. Das Ding hängst du mit ca. vier Drähten und drei Widerständen direkt an den LPT und kannst die Software draufflashen. Wenn du also nicht klarkommst, wär das viell. eine Überlegung wert, die 3-5,- zum Ausprobieren in so einen Controller zu investieren. Außerdem ist die Architektur der AVRs von vornherein schon für Hochsprachen optimiert.

Ich hab selber mit dem I2C noch nichts gemacht, aber ich denke, ich habe schonmal irgendwo im Netz sowas wie eine Library dafür gesehen. Da müsstest du wohl mal Google oder ein paar Programmier-Foren befragen.

Degi
 
  • Servo am Parallelport Beitrag #19
F

fuerstfanta

Mitglied
Dabei seit
04.01.2004
Beiträge
23
Reaktionspunkte
0
Ort
Deutschland
Das werd ich dann wohl mal machen... Danke für die Tips!

Smiley
 
  • Servo am Parallelport Beitrag #20
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Wenn du es mal mit den AVRs versuchen willst, dann ist www.avrfreaks.net die Anlaufstelle Nr. 1. Die wird direkt von Atmel unterstützt und es gibt haufenweise Foren, Beispiele, Projekte, und alles was dazugehört. Der C-Compiler ist der WinAVR, und arbeitet mit dem AVRStudio 3.5 (glaub ich) zusammen. Auf der Seite ist eine detaillierte Anleitung zur Einrichtung der Entwicklungsumgebung, und auch die Doku zum WinAVR.

Degi
 
Thema:

Servo am Parallelport

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben