Forum: Compiler & IDEs Anfängerfrage zu AVR-Studio und Uart


von Dominik G. (moondryl)


Lesenswert?

Hallo,
ich bin gerade dabei, mich von Arduino auf die direkte µC-Programmierung 
umzugewöhnen. Stehe jetzt aber vor zwei Rätseln.

(1) Ich möchte gerne die I2C-Lib von Peter Fleury nutzen. Das hat soweit 
auch gut funktioniert. Nur frage ich mich, ob es ein Verzeichnis ähnlich 
dem Arduino Library-Ordner gibt, indem ich das ganze einfügen kann und 
nur noch mit #include <i2cmaster.h> aufrufen brauche (oder müssen die 
einzelnen Dateien in unterschiedliche Ordner; geht das überhaupt?).

(2) Beim Arduino gab es einen Serial Monitor. Das war in sofern 
nützlich, dass man sich schnell Werte ausgeben konnte. Das ganze lief 
über TX und RX und wenn ich das richtig verstanden habe, ist hier das 
Äquivalent dazu der Uart. In dessen Register schreibt man die Daten und 
diese werden dann gesendet. Umsetzen würde ich das mit einem 
FTDI-Adapter, den ich noch vom Arduino habe. Nun fehlt mir aber noch 
etwas am PC, womit ich mir die ankommenden Daten ansehen kann. Gibt es 
im AVR-Studio etwas wie einen Monitor wie beim Arduino; konnte leider 
nichts passendes finden?

Viele Grüße

Dominik

von Coder (Gast)


Lesenswert?

HTerm bzw. HyperTerminal als Extra-Programm

von Dominik G. (moondryl)


Lesenswert?

Vielen Dank schonmal!
Werde ich mal mit rumspielen. :)

Noch jemand einen Tipp zu (1)? Das wäre perfekt. :)

Grüße und Danke nochmal!

Dominik

von Fabian O. (xfr)


Lesenswert?

Du kannst die c- und h-Dateien in beliebige Ordner legen. Wichtig sind 
zwei Dinge:

1. c-Dateien musst Du in das Projekt einfügen, damit sie kompiliert 
werden. Das geht im Solution Explorer mit Rechtsklick -> Add -> Existing 
Item. Dort die c-Datei auswählen. Wenn Du auf "Add" klickst, wird die 
Datei in das aktuelle Projektverzeichnis kopiert. Wenn Du auf "Add as 
Link" klickst, bleibt sie dagegen wo sie ist, und es wird nur eine 
Verknüpfung erstellt. Letzteres ist sinnvoll, wenn Du die gleiche 
c-Datei in mehreren Projekten benutzen willst. Wenn Du an der c-Datei 
etwas änderst, gelten die Änderungen in allen Projekten.

2. h-Dateien müssen in einem Ordner liegen, in dem der Compiler nach 
Include-Dateien sucht. Diese Ordner kannst Du in den 
Projekteinstellungen unter Toolchain -> C Compiler -> Directories 
einstellen. Wenn Du also einen Ordner mit gemeinsam genutzten Dateien 
hast, fügst Du ihn da ein.

von Dominik G. (moondryl)


Lesenswert?

Ok, das hilft mir schonmal sehr weiter, allerdings bei einer anderen 
Lib. :)
Die Lib von Peter Fleury für I2C besteht aus:

- i2cmaster.h
- i2cmaster.s
- makefile
- makefile.i2cmaster
- makefile.twimaster
- test_i2cmaster.c
- twimaster.c

Wohin kommt denn z.B. die i2cmaster.s?
In der i2cmaster.s steht anscheinend so ziemlich das gleich drin, wie in 
der twimaster.c (nur halt in Assembler).

Kann doch nicht sein, dass ich schon an so etwas scheitere? :(

Viele Grüße

Dominik

von Coder (Gast)


Lesenswert?

Hilf Dir doch mal selber und benutze mal die Forensuche, eine 
Suchmaschine oder lese Dir mal die Anleitung zum AVR Studio durch :-) Es 
gibt auch Application Note von Atmel bzgl. des Mischens von C und 
ASM-Dateien. Dann weist du auch, was man mit i2cmaster.s anstellt ;-)

von Dominik G. (moondryl)


Lesenswert?

Funktionieren tut es ja. Nur bisher habe ich die Dateien in meinen 
Projektordner gelegt und den Pfad zur i2cmaster.h angepasst; twimaster.c 
habe ich gelinkt, da der Atmega328p ja hardwareseitig I2C beherrscht.

Meine Frage war nun, ob es auch einfacher geht. Also ob ich die Dateien 
nun in einen Ordnen legen kann, um einfach aus jedem Projekt heraus 
i2cmaster.h aufrufen zu können.
Muss ich (sofern hardwareseitig vorhanden) die twimaster.c immer 
inkludieren?

Grüße

Dominik

von Coder (Gast)


Lesenswert?

Dominik Gebhardt schrieb:
> Funktionieren tut es ja. Nur bisher habe ich die Dateien in meinen
> Projektordner gelegt und den Pfad zur i2cmaster.h angepasst; twimaster.c
> habe ich gelinkt, da der Atmega328p ja hardwareseitig I2C beherrscht.
>
> Meine Frage war nun, ob es auch einfacher geht. Also ob ich die Dateien
> nun in einen Ordnen legen kann, um einfach aus jedem Projekt heraus
> i2cmaster.h aufrufen zu können.
> Muss ich (sofern hardwareseitig vorhanden) die twimaster.c immer
> inkludieren?
>
> Grüße
>
> Dominik

Du hast aber nicht gefragt, ob es auch einfacher geht, sondern wo denn 
die i2cmaster.s hinkäme.

Wie man nun den Quellkode organisiert hat jeder seinen eigenen Stil. 
Wenn es um eine Treibermodul handelt könnte man z.B. 
Quellkode-Unterverzeichnis anlegen und dort die dateien ablegen, oder 
vielleicht in diesem Unterverzeichnis ein weiteres Verzeichnis mit dem 
Namen TWI anlegen und darin die dateien ablegen oder.... Üblicherweise 
füge ich nur das dem Projekt hinzu, was ich auch wirklich benötige.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.