PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einstieg Programmierung/ Libs



StoredProc
08.05.2007, 10:14
Hi,
Ich möchte jetzt anfangen mein Experimentierboard mit einem AVR-Controller
in C zu programmieren. Register/Adressen usw. ist mir relativ klar, aber ich frag mich jetzt, wie ich im Code diese Register anspreche.

Es ist ja bestimmt nicht so, das ich die einzelnen Adresse der Register
selbst wissen und in den Code schreiben muss. Man nimmt da ja irgendwelche Definitionsdateien her in der dann steht, das das DDRA die Adresse xyz hat. usw.

Und genau hier ist mir nicht klar, woher diese Include-Dateien kommen?
Sind die beim GCC dabei? Werden die von Atmel geliefert? Woher besorgt man sich da ein gutes Framework um vieleicht nicht das Rad nochmal neu erfinden zu müssen. Beim BASCOM gibt man ja am Codeanfang ein definitions-file an.

In C-Code hab ich auch schon mal sowas wie :
<io.h> gesehen. Wo findet man dieses File? Gibts da ne Docu über die Funktionen?
hab ich mein problem verständlich ausgedrückt? :-)

gruss steffen

Banzai
08.05.2007, 12:02
Hi StoredProc( int answer ),

wenn du WinAVR ( http://www.mikrocontroller.net/articles/WinAVR, http://winavr.sourceforge.net/ ) installierst, sind diese Include-Dateien (und noch einiges mehr) zu finden.

Hoffe damit geholfen zu haben

Untertänigst


Banzai

askazo
08.05.2007, 12:29
Im WinAVR ist auch ein Dokumentation für die Lib-c dabei.
Leider nur auf Englisch...
Die io.h ist übrigens die wichtigste include-Datei. Sie verweist alledings nur auf die passende io-Datei des benutzten Prozessors. Wenn Du z.B. mit dem Mega128 arbeitest, wird über die io.h die Datei iom128.h eingebunden. Darin stehen alle wichtigen Registerdefinitionen für den Prozessor.

Danach kannst Du in Deinem Programm die Register einfach mit Namen ansprechen, z.B.
DDRA = 0x0F; oder
$result = PINA;

Gruß,
askazo

StoredProc
08.05.2007, 14:16
Und woher weis die io.h, welchen prozessor ich ansprechen will?

wanderer
08.05.2007, 14:38
Durch deinen Compiler aufruf soviel ich weiss. Du gibst ja in deiner avr-gcc zeile den Chip an, und daran erkennt die io.h deinen Controller.

(nich haun wenn falsch ist ^^)

StoredProc
08.05.2007, 15:28
Ah, jetzt jetzt errinnere ich mich etwas. ich glaub, im make-file musste man das eintragen.
hab bis jetzt immer nur das file kopiert und nur für den asuro etwas programmiert. da sieht man solche feinheiten nicht :-)

askazo
08.05.2007, 16:26
Wenn Du WinAVR zusammen mit AVRStudio 4.13 nutzt, kannst Du die Makefile-Optionen per grafischer Oberfläche erstellen.
Das ist, wie ich finde, der komfortabelste Weg.

askazo

StoredProc
09.05.2007, 09:21
Wie funktioniert das zusammen?
Muss man da irgendwas konfigurieren oder einfach beide installieren und getrennt starten?

Pascal
09.05.2007, 09:53
Du installierst zuerst WinAVR, danach das AVRStudio. Konfigurieren musst du nichts, damit die zusammenarbeiten. Du musst dann nur noch AVRStudio starten, WinAVR nicht.

StoredProc
09.05.2007, 13:02
danke, probier ich mal aus