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
>wie auch Beschreibungen...
Danke!
Link werde ich mir anschauen, restlichen Text hättest Du Dir auch sparen
können.
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 nochmal: an folgender Stelle in sensors_xplained.c wird für EXT_BOARD = 3 angezeigt, das entspricht dem Inertial_1
1 | void sensor_board_init(void) |
2 | {
|
3 | /* Configure all defined Xplained Sensor board I/O pins.
|
4 | *
|
5 | * \todo
|
6 | * Determine whether the interrupt event flag (rising edge, falling
|
7 | * edge, toggle, etc.) should be a statically configurable parameter
|
8 | * for devices requiring more flexibility in how events are detected.
|
9 | */
|
10 | #if (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_1) || \
|
11 | (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_2) || \
|
12 | (EXT_BOARD == SENSORS_XPLAINED_INERTIAL_A1)
|
13 | |
14 | gpio_configure_pin(SENSOR_BOARD_PIN3, PIN_INPUT_FLAGS); |
15 | gpio_configure_pin(SENSOR_BOARD_PIN4, PIN_INPUT_FLAGS); |
16 | gpio_configure_pin(SENSOR_BOARD_PIN5, PIN_INPUT_FLAGS); |
wird für EXT_BOARD = 3 angezeigt, das entspricht dem Inertial_1. Trotz, dass ich im Mainfile folgendes Statement angegeben habe
1 | #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
>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
>Und was soll uns das sagen?
Nichts, nachdem der Erguss, auf den sich das ganze bezog, unterschlagen
wurde.
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")
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.