-
-
Neuer Benutzer
Öfters hier
RS232 versuche
Ich hab einen alten laptop bekommen(233mhz,2x seriell und 1x parallel) und hab mir überlegt ich könnte den in einen roboter statt einen Microkontroller einbauen. In einem Chat wurde mir g++ als compiler empfohlen, ist der gut? Wie kann ich dann die serielle Schnittstelle in c++ ansteuern, also z.B. LEDs an-/ausschalten oder Taster/Pultis prüfen?
Gruß Helge
-
Erfahrener Benutzer
Roboter Experte
Hi HelgeG,
wenn du mit g++ die GCC meinst dann hat man dir genau das Richtige empfohlen. Die GNU Compiler Collection ist eine Sammlung von freien Compilern für zig verschiedene Hardwareplatformen. Unter Linux ist das DER standard Compiler für die meisten Programme. Und natürlich gibts die GCC auch für AVRs...
ein Problem hat das Teil allerdings: Es ist für Einsteiger erstmal eine große Hürde sich in die GCC einzuarbeiten... nehm dir also die notwendige Zeit.
Wenn du also mit freier Software in C oder C++ programmieren möchtest, dann kommst du an der GCC nicht vorbei... das ist DER Standard.
Wie du die Schnittstellen ansprichst hängt von deinem Betriebssystem ab.
Bei den modernen Windowsversionen wirst du wahrscheinlich nicht um die Win32API herum kommen... unter Linux kannst du die DEV-Dateien nutzen und unter DOS kannst du direkt auf die Register zugreifen.
An deiner Stelle würde ich DOS nutzen:
1) Du hast direkten Zugriff auf die Hardware. Tutorials zum Thema Portzugriff findest du im Netz.
2) DOS-Programme können die CPU übernehmen und die komplette Rechenzeit verwenden.
3) Es gibt DOS-Versionen mit Multitaskingfähigkeiten.
Gruß,
SIGINT
-
Neuer Benutzer
Öfters hier
Also dann benutze ich Dos, das ist ja bei Windows 98 noch dabei. GCC installier ich gerad auch auf dem Laptop. Aber ich hab schon gesucht und ich finde keine Tutorials!! Kannst du mir eins empfehlen?
-
Moderator
Robotik Visionär
Basic müste eigentlich auch funktionieren und ist beim alten DOS "on Board". Das kann auch direkt auf Schnittstellen und Ports zugreifen. Ist zwar ein Interpreter, aber bei 233 MHz ausreichend schnell. Und für Robotersteuerungen mit Schrittketten ist der goto supergut geeignet. Win eignet sich übrigens nicht als Plattform für ein Prgramm, dass in Echtzeit Dinge erledigen soll.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
-
Neuer Benutzer
Öfters hier
kenne zwar schon c++, aber bin immer für neues offen...
hat denn wer n gutes Tutorial? oder kanns so erklären?
-
Moderator
Robotik Visionär
Tutorials gibt's wohl bei google, learning by doing ist angesagt.
Mit meinem T1000 funktionierte das mal gut, aber das ist ewig her. Mit dem ganzen Websitebau habe ich die roots vergessen, ich werkle seit Jahren nur noch mit html&co. Basic ist bei mir quasi ausgelöscht(alzheimer läst grüssen).
Das Hauptproblem dürfte wohl die "Architektur" der Pentium-Rechner sein. Bei den 286/386ern kannte man jedes Bit noch mit Vornamen. Bis du dich da eingelesen hast... Ich denke, die Zeit investierst du besser in andere Dinge und holst dir ein RN-Board. Damit bist du "up to date", hast einen prima Support und dein geplanter Robi muss nicht das Gewicht des Laptops mitschleppen. Sorry, war ein blöder Vorschlag von mir.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
-
Neuer Benutzer
Öfters hier
Den Laptop habe ich schon und ich möchte halt (erstmal) nicht mehr investieren. Hat denn keiner ein Tutorial??
-
Moderator
Robotik Visionär
Hartnäckigkeit ist schon mal gut.
Ausgaben auf die Schnittstellen funktionieren mit Print. Dabei kann man das Gerät mit angeben, in der Art Print Kanal, Daten. Als Kanal kann man dann lpt1, com1/2 oder konsole angeben und dorthin ein Byte ausgeben. Wenn du das Pinout der parallelen Schnittstelle kennst, kannst du mit print lpt1, Wert (syntax ohne Gewähr) ein Byte an die parallele Schnittstelle senden und an dem entsprechenden Pin über einen Treiberbaustein oder nen Darlington eine Lampe oder einen Motor schalten. Mit print com, wert dasselbe an den seriellen Schnittstellen.
Zusätzlich kann Basic auch die Ports direkt ansprechen, 0x2f8/0x278 sind (glaube ich mich erinnern zu können) die Ports für serielle, 0x3f8 + 0x378 die für die parallelen Schnittstellen. Die darauf folgenden Adressen sind Steuer- oder Statusbytes, über sie kann man z.b. die Handshakeleitungen wie bussy ode rtx setzen oder abfragen. So wird aus einer 8-bit-Druckerleitung ein 2x4-bit Laplink-Kabel oder aus einer seriellen Schnittstelle eine Ansteuerung für eine Relaiskarte.
Du siehst, es gibt viel zu googlen, viel Spass dabei
Gruss
mic
[edit]
Richtig toll an Basic ist ja die Komandozeile. Weil es eine Interpretersprache ist, kann man die Befehle einfach in der Konsole eingeben und ohne Kompilierung wird der Befehl sofort ausgeführt. So kann man ganz bequem die einzelnen Ausgabe-Bits setzen und messen oder die Eingabebits abfragen. Deutlich eleganter und schlanker als bei c, pascal & co
[/edit]
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen