PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Woher weiß der Microcontroller was z.B ein Bumper ist (RP6)



sweetsuit
14.07.2011, 09:33
Hallo ich hoffe diese Frage ist nicht zu banal und es beantwortet trotzdem jemand.

C ist ja eine Programmiersprache, die eigentlich solche Befehle wie Bumper, LED und drive nicht kennt.
Ich habe mir einen RP6 bei Conrad gekauft, der ja angeblich mit C programmierbar ist und meine Frage ist jetzt, woher kennt der Microcontroller jetzt diese Begriffe?
Sind die in der RP6-Bibliothek hinterlegt, die man ja am Anfang eines jeden Programms mit einbinden muss?
Und wenn ich mir einen Roboter selbst baue, binde ich dann eine Atmel-Bibliothek mit ein oder wie bringe ich dem Roboter dann solche Befehle bei?
Eigentlich dürfte ich ja nur angeben: Strom auf den und den Port oder?

Danke schon mal

DanielSan
14.07.2011, 10:22
Hi

ja das sind Bibliotheken in denen fertige funktionen stehen. Diese kannst du auch direkt in dein Programm schreiben, dadurch wird es allerdings etwas unübersichtlicher.


Eigentlich dürfte ich ja nur angeben: Strom auf den und den Port oder?
Mehr macht die Bibliothek auch nicht. Es ist nur für den Anwender einfacher/schöner.

Gruß Daniel

PicNick
14.07.2011, 10:28
ot: Genaugenommen weiss auch der Bumper nicht, dass er ein Bumper ist :-)

radbruch
14.07.2011, 10:38
Hallo

Ja, du hast vollkommen recht, der Kontroller (µC) kennt keine Bumper. Und es kommt noch schlimmer: C kennt den Kontroller auch nicht und der Kontroller versteht überhaupt kein C! Deshalb wurde AVR-GCC entwickelt, eine C-Plattform speziell für AVRs. Das Paket besteht aus dem Kompiler, dem Preprozessor und den Standartbibliotheken. Diese Bibliotheken erklären C wie der µC funktioniert. Und die Bibliotheken des RP6 erklären C wie der RP6 funktioniert.

Wenn du einen eigenen Roboter baust, mußt du selbst dafür sorgen, dass C die Funktionen deines Roboters kennt. Dazu kannst du die nötigen Programmteile selbst schreiben (und als eigene Lib einbinden) oder eine der vielen freien Bibliotheken verwenden, z.b. I2C, USART usw.

Hier ein Beispiel dafür wie man die erprobte Library des asuro an eine geänderte Hardware anpassen kann:
https://www.roboternetz.de/community/showthread.php?43885-ProBot-mit-asuro-Mega8

Gruß

mic

Filou89
14.07.2011, 10:49
Den Programmcode für die Bumper findest du in der RP6RobotBaseLib.c ab der Zeile 160. Wenn du dann den Code mit dem Elektro-Schema vergleichst wird es vielleicht noch verständlicher.
Gruss Filou