Hi.
Ich möchte gerne mit einer eigenen Hardware das ASF mal testen bzw.
nutzen.
Leider sind alle Tutorial Videos wie auch Beschreibungen auf
vordefinierte EvalBoards abgestimmt.
Gibt es nicht irgendwo anständige Infos über die Definierung der Ports
beispielsweise wenn man eigene Hardware einrichtet.
Am liebsten wäre mir ein Tutorial von Anfang an wenn man das Projekt im
Studio anlegt.
Weiß hier jemand Rat?
Grüße Tom
Tom schrieb:> Ich möchte gerne mit einer eigenen Hardware das ASF mal testen bzw.> nutzen.> Leider sind alle Tutorial Videos wie auch Beschreibungen auf> vordefinierte EvalBoards abgestimmt.
Ja, als Programmierer kommt es schonmal vor, daß es mit Video gucken
allein nicht erledigt ist, sondern daß man auch mal Doku lesen muß...
Z.B.: diese:
http://www.atmel.com/dyn/resources/prod_documents/doc8432.pdf
Ich habe das gleiche Problem. Atmel hat anscheinend kein Interesse daran
dass man NICHT ihre Boards benutzt.
Ich habe schon die ganze verfügbare Dokumentation abgegrast, aber auch
keine praktische Hilfe gefunden...
Kleiner Tipp: Ein Projekt mit einem Atmelboard erstellen und dort
nachschauen, was alles zum Board definiert wird und dann für das eigene
Board anpssen.
Leider legt das ASF einen ziemlich undursichtigen Wust an Dateien an -
auch deshalb ist es in diesem Forum von vielen (leider) verpönt.
Deshalb muss man sich zuerst einmal durch die verwendete Hierarchie
durchbeißen.
Hierzu hätte ich auch eine Frage, da es mir wie Alex geht.
Ich habe ein neues Projekt auf Basis eines Beispielprojekts angelegt:
"Inertial Sensor Demonstration" auf UC3_L0.
Leider ist dort ein AVRSBIN1 verwendet. In den Quellen sehe ich, dass
prinzipiell auch ein AVRSBIN2 möglich wäre (welches ich auch habe).
Nur wo zum Teufel stellt man das ein?
In der Header Datei "sensors_xplained.h" wird EXT_BOARD abgefragt:
#elif (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_2)
Aber auch mit suchen in der kompletten Solution bin ich nicht fündig
geworden, wo EXT_BOARD gesetzt wird.
Kann mir hier einer helfen?
Hallo,
wie ich das sehe, wird EXT_BOARD von vornherein nirgends eingestellt,
das musst Du erst machen wenn Du ein Extension-Board verwendest. Dann
kannst Du einstellen um welches Ext-Board es sich handelt, abhängig
davon werden dann die entsprechenden includes geladen. Du hast hier auch
die Möglichkeit ein eigenes Extensionboard zu verwenden, musst aber die
notwendigen includes dazu in die Datei board.h selbst eintragen:
# elif EXT_BOARD == USER_EXT_BOARD
// User-reserved area: #include the header file of your extension
board here
// (if any).
Die möglichen Werte für EXT_BOARD stehen ebenfalls in der Datei conf.h:
/*! \name Extension Boards
*/
//! @{
#define EXT1102 1 //!< AT32UC3B EXT1102 board
#define MC300 2 //!< AT32UC3 MC300 board
#define SENSORS_XPLAINED_INERTIAL_1 3 //!< Xplained inertial sensor
board 1
#define SENSORS_XPLAINED_INERTIAL_2 4 //!< Xplained inertial sensor
board 2
#define SENSORS_XPLAINED_PRESSURE_1 5 //!< Xplained pressure sensor
board
#define SENSORS_XPLAINED_LIGHTPROX_1 6 //!< Xplained light & proximity
sensor board
#define SENSORS_XPLAINED_INERTIAL_A1 7 //!< Xplained inertial sensor
board "A"
#define RZ600_AT86RF231 8 //!< AT86RF231 RF board in RZ600
#define RZ600_AT86RF230B 9 //!< AT86RF230B RF board in
RZ600
#define RZ600_AT86RF212 10 //!< AT86RF212 RF board in RZ600
#define SENSORS_XPLAINED_BREADBOARD 11 //!< Xplained sensor development
breadboard
#define SECURITY_XPLAINED 12 //!< Xplained ATSHA204 board
#define USER_EXT_BOARD 99 //!< User-reserved extension
board (if any).
//! @}
Die Datei sensors_xplained.h wird erst geladen wenn EXT_BOARD mit
"SENSORS_XPLAINED_*" definiert ist -> siehe board.h, Zeilen 284-290.
Grüße,
Robert.
Hallo Robert,
Danke für die Antwort.
Aber über welchen Mechanismus wird das Inertial_1 verwendet, wenn ich
keine Angaben mache? Hier würde ich gerne ansetzen?
Grüße
ben
Meine Erfahrung? Bevor ich mich in den ASF Krempel eingearbeitet habe,
und durchblicke, wie so die defines "verlaufen" und was wo stehen soll,
habe ich die nötigen Funktionalitäten selbst implementiert.
Für kompliziertere Sachen wie USB Stack oder FAT32 gibt es genügend
Alternativen.
Hallo Ben,
habe ich das richtig verstanden, dass Du das "Xplained inertial sensor
board 1" als Erweiterungsboard verwenden willst? Dann musst Du in die
Datei board.h den Eintrag:
#define EXT_BOARD SENSORS_XPLAINED_INERTIAL_1
hinzufügen. Der Compiler weiß dann, dass dieses Board verwendet wird und
lädt die Datei sensors_xplained.h dazu und stellt die entsprechenden
Anschlußzuordnungen usw. her.
Wenn Du kein EXT_BOARD definierst, ist für den Compiler auch kein
Erweiterungsboard vorhanden.
Grüße,
Robert.
Danke für die Anmerkungen und Tipps.
Im Grunde wollte ich nur mal auf die schnelle sehen, was der
Magnetfeldsensor so ausspuckt. Dann hätte ich die entsprechenden Teile
entweder nachimplementiert oder übernommen. Man muss ja nicht immer
alles selbst implementieren..
Stolperstein soll an der Stelle die Selbstkalibierung sein, deshalb
wollte ich hier mal sehen wie Atmel das macht. Nur leider kommt es
garnicht so weit.
@RobWa:
Du hast mich leider missverstanden. Ohne jegliche weitere Definition
(meinerseits) geht das ASF Projekt davon aus, dass ein Inertial 1 dran
hängt. Habe aber leider ein Inertial 2.
Auch mittels debugging konnte ich die Stelle nicht finden, an der das
definiert ist. Vermutlich komme ich an der Stelle wegen des Define
Statements ganicht vorbei. Aber auch eine Suche nach "EXT_BOARD" war
erfolglos, bzw. ich habe die entsprechende Stelle nicht gefunden.
Da ich dann irgendwann selbst an mir zweifelte, habe ich mal hier
nachgefragt. Hätte ja sein können, dass sich da jemand mit ASF und
dessen Philosophie auskennt. Besonders intuitiv finde ich es ja bisher
nicht..
Grüße
Ben
>Ich habe das gleiche Problem. Atmel hat anscheinend kein Interesse daran>dass man NICHT ihre Boards benutzt.
Ein Tipp im Geheimen: Nach Drei ist noch nicht Schluss da kommt
tatsächlich Vier.
Atmel ist ein Hersteller von Mikroprozessoren, der seine Boards für
Schulungszwecke - wie auch andere Hersteller - verkauft. Würde mich
nicht wundern, wenn das Ganze sogar ein mächtiges Zuschussgeschäft wäre.
Leider wurde das Sprichwort: "Vor Betätigung des Mundwerkes - Hirn
einschalten", noch nicht für die Tastatur angepasst.
Wenn man macht was einem gesagt wird, dann funktionierts:
> Dann musst Du in die> Datei board.h den Eintrag:>> #define EXT_BOARD SENSORS_XPLAINED_INERTIAL_1>> hinzufügen.
Amateur schrieb:> Ein Tipp im Geheimen: Nach Drei ist noch nicht Schluss da kommt> tatsächlich Vier.>> Atmel ist ein Hersteller von Mikroprozessoren, der seine Boards für> Schulungszwecke - wie auch andere Hersteller - verkauft. Würde mich> nicht wundern, wenn das Ganze sogar ein mächtiges Zuschussgeschäft wäre.>> Leider wurde das Sprichwort: "Vor Betätigung des Mundwerkes - Hirn> einschalten", noch nicht für die Tastatur angepasst.
Und was soll uns das sagen?
hast du schonmal die CompilerSwitches angeschaut?
ich schreibs dir mal in der kürzesten Form auf:
ALT+F7
Toolchain
Symbols
dort findest Du die Definition von EXT_BOARD
am Ende die Einstellungen abspeichern
Steffen schrieb:> hast du schonmal die CompilerSwitches angeschaut?> ich schreibs dir mal in der kürzesten Form auf:>> ALT+F7> Toolchain> Symbols>> dort findest Du die Definition von EXT_BOARD>> am Ende die Einstellungen abspeichern
Klasse! Genau DAS habe ich gesucht. Ist ja gut versteckt ..
Grüße
Ben
Ben schrieb:> Trotz, dass ich im Mainfile folgendes Statement angegeben habe> #define EXT_BOART SENSORS_XPLAINED_INERTIAL_2>> Dies bringt weder einen Fehler, noch eine Warnung, dass das 2x definiert> wird. So langsam bin ich echt ratlos
wenn man die Möglichkeit von Steffen mal aussen vor lässt (die ja zu
gehen scheint), wäre eine Korrektur des Fehlers im zitierten Statement
evtl. auch die Lösung gewesen: BOARD schreibt man NICHT mit "T" (siehe
"EXT_BOART")