- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 17

Thema: Asuro - Anfängertauglich; totale Verzweiflung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Dein Tastenprogramm gibt nicht die Tastenwerte aus sondern den Formierungsfaktor für die Superformel am Ende von PollSwitch().

    http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten
    https://www.roboternetz.de/community...oblem-gel%F6st

    Um die ermittelten Tastenwerte anzuzeigen kannst du dieses Programm verwenden:
    http://www.asurowiki.de/pmwiki/pmwik...astSensorTestC

    Wenn deine Version der Library die Funktion PrintInt() nicht kennt:
    https://www.roboternetz.de/community...al-%FCbergeben

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #2
    Benutzer Stammmitglied Avatar von Vilem
    Registriert seit
    05.12.2010
    Ort
    bei Bad Kreuznach
    Beiträge
    53
    Hallo Abnormal,
    Ich bin auch ein Programmier-Anfänger und muß Dir fast in allen Teilen zustimmen. es ist manchmal oder oft oder meistens zum Verzweifeln !
    Schritt für Schritt-Anleitungen, ich habe auch noch keine gefunden ! Die Anleitungen fangen meist recht soft an, daß man denkt, oh wie schön ! Und dann schmeißen die einem soviel unerklärte und aus sich heraus unverstehbare Begriffe und Sätze an den Kopf, das man aufgibt und verzweifelt. Auch und besonders die Bücher I und II zum Asuro, viel unverständliches Zeug für den Asuro-Neuling. Was soll in Bd. II z.B.der lange Exkurs über Operationsverstärker ? Weitere Erläuterungen des Zusammengehens von C mit dem Asuro wären mir lieber gewesen.
    C etwas mühsam zu erlernen, man beißt sich durch...aber die Hoffnung, dabei etwas praktisches für den Asuro zu lernen, gefehlt ! NIX (siehe unten.)
    Die Quelldateien von Programmen, denen hex-Dateien beigefügt sind, sind ja für den Anfänger noch zu verwenden, wenn denn das flashen klappt, aber dabei lernt man ja NIX, das Compilieren mancher im RN angebotener Dateien oder sollen es nur Dateischnipsel sein, wie ist das zu erkennen ? ist schon mit Schwierigkeiten verbunden, weil man, ich betone: immer als Anfänger, nicht weiß, welche header-Dateien, makefile, bats man braucht. Da hilft einem C zu lernen NIX !
    Die Moderatoren, radbruch sei gelobt, bemühen sich ja redlich und hilfsbereit, auch dumme Fragen zu beantworten, alle Achtung und Hochschätzung ! Dumme Fragen von Anfängern ? Nein, wenn ich keine Durchsicht als Anfänger habe, kann ich häufig auch die Frage nicht richtig stellen. So bleiben die Profis unter sich und die große schweigende Mehrheit, ich bin überzeugt, daß es da noch viele gibt, die sich gar nicht zu fragen trauen, .... schweigt und staunt mit offenem Mund vor soviel Profi-Wissen.
    Mein Vorschlag wäre, mal ein separates board zu starten, wo die Anfänger wirklich mal ungeniert "dumme" Fragen stellen dürfen und Antworten erwarten dürfen, die sie verstehen, z.B. wofür gibt es eigentlich zwei gleichnamige header-Dateien mit Endung ...h und ...c, ( warum muß in diesen ein Ausdruck untereinander getauscht werden ?) und die vielen anderen, nicht lesbaren Dateien mit für mich kryptischen Endungen: pnproj, aps u.v.a. ? Wo finde ich zu einer Quelldatei die zugehörigen makefiles und bat-Dateien ??? wenn nur Quelldateien(schnipsel) angeboten werden ? Kann es sein, daß selbst im RN-Wissen Dateien als professionelle Taten abgelagert sind (siehe Maus-Sensor), die selbst ein Profi nicht compiliert kriegt ?
    Recht hast Du Abnormal ...und gar nicht so abnormal. Auch ein Abnormaler, oder ?
     
     
     
    *** fail faster to succeed sooner ***

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von Vilem Beitrag anzeigen
    nicht weiß, welche header-Dateien, makefile, bats man braucht. Da hilft einem C zu lernen NIX !
    [...]
    z.B. wofür gibt es eigentlich zwei gleichnamige header-Dateien mit Endung ...h und ...c, ( warum muß in diesen ein Ausdruck untereinander getauscht werden ?) und die vielen anderen, nicht lesbaren Dateien mit für mich kryptischen Endungen: pnproj, aps u.v.a. ?
    Wo finde ich zu einer Quelldatei die zugehörigen makefiles und bat-Dateien ??? wenn nur Quelldateien(schnipsel) angeboten werden ?
    Zum ersten Teil: Falsch, wenn du (C) programmieren kannst, macht einiges sehr schnell sehr viel Sinn. Ich will es Mal so umschreiben: Die ASURO-Bibliothek ist der Werkzeugkasten mit dem du arbeitest. Hast du die handwerklichen/motorischen Fähigkeiten nicht, bringt dir auch das tollste Werkzeug nichts.

    Zum zweiten Teil: Das mit "h" und "c" ist einerseits eine Frage der Konvention, andererseits eine Eigenheit der Programmiersprache C, die zwischen Deklaration ("Es gibt eine Funktion mit Namen X, Parametern Y und Rückgabewert Z") und Definition ("Hier ist Funktion X die folgendes macht (Quelltext)"). Jede C-Datei steht beim Kompilieren erst einmal alleine da und weiß nichts über andere Dateien oder Bibliotheken. Um daher "fremde" Funktionen zu verwenden, müssen diese erst bekannt gemacht werden, indem man sie Deklariert. Um diesen Vorgang zu vereinfachen, schafft man eine Art Schnittstelle, die Header-Datei, die die Deklarationen aller wichtigen Funktionen enthält. (Wobei wichtig == soll von außen benutzt werden können).
    Und damit man immer weiß, welcher Header die Schnittstelle zur welcher Implementierung enthält, verwendet man normalerweise den gleichen Namen wie bei der Quelltext-(C)-Datei, was die typischen Paare Name.C und Name.H ergibt.

    Manche Dateien sind nicht für dich bestimmt, sondern werden (Beispielsweise von Eclipse, AVR Studio o.ä.) für eigene Zwecke verwendet. Andere sind sogenannte Projektdateien, in der die Programmierumgebung sich merkt, was alles zusammengehört.

    Und zu der Frage, "Wie finde ich raus was wie zusammengehört und wie es funktioniert", das sollte die Dokumentation des Quelltextes erklären. Wenn nur Schnipsel angeboten werden, musst du dir wohl selbst ein Makefile aufsetzen, alternativ dazu kannst du auch eine Entwicklungsumgebung verwenden, die das für dich von alleine erledigt.

    mfG
    Markus

  4. #4
    Benutzer Stammmitglied Avatar von Vilem
    Registriert seit
    05.12.2010
    Ort
    bei Bad Kreuznach
    Beiträge
    53
    Hallo markusj,
    danke für Deine Antwort ! Da mag ich ja vielleicht manches falsch sehen, mein Anfängerproblem ist halt, daß man vor lauter Bäumen den Wald nicht sieht. Ich bin ja bemüht, aber wo finde ich den richtigen Einstieg ?, d.h. mit Deinen Worten: ich muß erstmal die Fächer des "Werkzeugkasten" überblicken, daß ich weiß, wo ich den Schraubschlüssel finde, den ich gerade brauche.
    Nochmal zuden c. und h. Dateien. Habe ich das jetzt richtig verstanden ? Z.B. In der asuro.h wird eine Fkt. "deklariert". In der asuro.c wird diese Fkt. "definiert" (soll wohl heißen (?), hier ist die Fkt. als eine Art Makro vorprogrammiert (?)). In meiner Quelldatei (z.B. test.c) wird die Fkt.gebraucht und aufgerufen, richtig ?
    Muß ich dann beide, also asuro.c und asuro.h, als #include "asuro.c" und #include "asuro.h" an den Anfang meiner Quelldatei (test.c) stellen ? Oder genügt es, die im gleichen Ordner (Pfad) stehen zu haben ? Im make-file steht nur unter TARGET = test, OK ?
    *** fail faster to succeed sooner ***

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Du könntest auf #include komplett verzichten, wenn du den Inhalt von asuro.h in deiner Datei test.c vor und den Inhalt von asuro.c hinter deine eigene main()-Funktion kopieren würdest. Beim Kompilieren würde der Kompiler dann die Namen aller definierten Dinge (Funktionen, #defines, Variablen oder auch Register und Pins des Kontrollers) kennen bevor du sie in main() verwendest. Weiterhin würde er alle Funktionen hinter main() mit übersetzen und von main() aus anspringen wenn du sie in main() verwendest.

    Mit #include eingebundene Dateien werden in das Programm direkt an der Stelle eingefügt, an der das #include steht, quasi wie reinkopiert. Prinzipiel funktioniert deshalb auch ein #include asuro.c Das ist aber "verpöhnt", weil man .c-Dateien über das Projekt einbinden sollte.

    Der Unterschied ist etwa so: Wenn über das Projekt eingebunden wird erzeugt der Kompiler beim Übersetzen zwei Objektdateien mit den in Maschinensprache übersetzten C-Befehlen (aus test.c und asuro.c) und der Linker verbindet dann beide zu einem Programm und legt die Speicherbereiche so fest das alles passt (Funktionsadressen, Variablenspeicherplätze...) und erzeugt schließlich aus der Maschinensprache ein Speicherabbild des Programms im AVR als Hex-Datei. Bei Einbindung mit #include asuro.c wird nur eine Objektdatei erzeugt.

    Das ist eigentlich nur ein Teil der Wahrheit, denn in Wirklichkeit werden noch viel mehr Dateien eingebunden (siehe Anfang von asuro.h) Das erzeugte Maschinenprogramm heißt übrigends Projektname.lst Darin sieht man dann neben den eigenen Funktionen auch die übersetzten Funktionen der asuro-Library. Hier mal ein einfaches Beispiel:

    PHP-Code:
    #include "asuro.h"
    #include "asuro.c"

    int main(void)
    {
        
    Init();
        
    StatusLED(RED);
        while (
    1);
        return(
    0);

    Zur LST-Datei im Anhang:
    Wegen #include asuro.c sieht man auch die Lib-Funktionen, ab Zeile 303 der Code für StatusLED(), ab Adresse 0x019e beginnt der eigentliche Code. In Zeile 1105 beginnt main(), in Zeile 1116 wird die Funktion StatusLED() aus main() heraus aufgerufen. In Zeile 1115 wird übrigends das Register r24 mit 2 geladen. Ab Zeile 333 wird durch diese 2 dann die rote Led ein- und die grüne Led ausgeschaltet. Aber ich glaube, ich schweife ab...

    Aller Anfang ist schwer. Die Microkontroller sind kein Spielzeug, das ist echte Hightech. Deshalb ist das auch so kompliziert. Aber wenn du dir mal die Grundlagen erarbeitet hast wird's noch schlimmer

    Gruß

    mic
    Angehängte Dateien Angehängte Dateien
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.703
    Hi Vilem,

    das ist gut beschrieben mit den Bäumen, dem Wald und dem Anfänger. Ging mir genauso - wie vermutlich vielen.
    Zitat Zitat von Vilem
    ... Nochmal zuden c. und h. Dateien. Habe ich das jetzt richtig verstanden ? Z.B. ...
    Jetzt könnte man natürlich ausfürlich antworten. Aber vielleicht schaust Du Dir diese beiden Tutorials an (ich meine WIRKLICH ANSCHAUEN - nur soweit durchlesen wie Du es interessant findest - dann weißt Du wo was steht und liest das nur bei Bedarf genauer durch).
    http://www.rn-wissen.de/index.php/C-Tutorial
    http://www.mikrocontroller.net/artic...R-GCC-Tutorial

    Im zweiten Tutorial ist im Einführungsbeispiel (klick hier) mal gaaanz kurz gezeigt, wie ein C-Programm aufgebaut ist. Na ja, und zum asuro gibts doch noch immer die BAU- UND BEDIENUNGSANLEITUNG (klick schon wieder) in der ein bisschen über C steht. Dass es zum asuro eigene Bibliotheken gibt (asuro lib) ist im Prinzip ne Erleichterung aber für Anfänger wohl immer ein böser Stolperstein *ggg*.

    Viel Erfolg
    Ciao sagt der JoeamBerg

  7. #7
    Benutzer Stammmitglied Avatar von Vilem
    Registriert seit
    05.12.2010
    Ort
    bei Bad Kreuznach
    Beiträge
    53
    Hallo,
    vielen Dank für die Informationen.
    @ radbruch: Das habe ich fast alles (glaube ich) verstanden, danke, nur hapert's mal wieder an so einfachen Dingen, daß ich die Fach-Begriffe nicht verstehe.
    Was heißt: "Wenn über das Projekt eingebunden wird ...." Was ist das "Projekt", meine Quelldatei ? Was ist "eingebunden" ?
    Interessant die lst.txt Datei, arbeite ich noch durch.
    Und ... mache uns nicht bange mit: " ... wird's noch schlimmer"
    @ oberallgeier: vielen Dank für die links, die ich mir an Wochenende mal zu Gemüte führen werde. Die Asuro Bedienungsanleitung ist Ok, aber hilft eigentlich kaum weiter, den "Wald" zu sehen. Ja, die AsuroLib ist sicher supergut, aber wahrlich ein Stolperstein für Anfänger. Gäb's nur dafür mal eine gute Einführung.
    *** fail faster to succeed sooner ***

  8. #8
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    "Über das Projekt eingebunden" meint asuro.c per Makefile und nicht per #include eingefügt. Im Makefile findet der Kompiler einen Hinweis auf asuro.c und baut die Datei deshalb in das Programm mit ein.

    "Projekt" beschreibt alles was mit dem aktuellen Programm zusammenhängt. Das Wort "Projekt" taucht übrigends nur einmal in der asuro-Anleitung auf. Zufälligerweise genau an der Stelle über die wir uns grad unterhalten

    Funktionen:
    https://www.roboternetz.de/community...-RP6-und-Asuro

    .c und .h einbinden:
    https://www.roboternetz.de/community...indung-asuro.c

    asuro ohne Lib programmieren:
    https://www.roboternetz.de/community...-programmieren
    Geändert von radbruch (29.04.2011 um 19:51 Uhr) Grund: Links hinzugefügt
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    31.03.2011
    Beiträge
    89
    Zitat Zitat von Vilem Beitrag anzeigen
    Auch und besonders die Bücher I und II zum Asuro, viel unverständliches Zeug für den Asuro-Neuling. Was soll in Bd. II z.B.der lange Exkurs über Operationsverstärker ?
    NAja die Bücher finde ich eigentlich recht gut. Insbesondere der erste BAnd war sehr leicht verständlich geschrieben. Den zweiten habe ich noch nicht durchgelesen, aber OPs sind allgemein ein sehr wichtiges Thema in der Elektronik. Ich sag mal - wahrscheinlich einer der meist gebrauchtesten Bauteile überhaupt? Da kann es nicht schaden diesem ein paar Kapitel zu widmen - einfach zum besseren Verständnis.

    Mit der HArdware des Asuros kenn cih mich - so denke ich- jedenfalls so einigermaßen aus, nur das Programmieren ist für mich totales Neuland und derzeit bin ich in ziemlichen Prüfungsstreß, usw. da geht grad so gar nix weiter.

    Nochmal zum OP - im ENeffekt ist der AD/Wandler des Asuros ja auch nix anderes, eine gelieferte (heruntergebrochene/-geteilte) Spannung wird mit einer Referenz verglichen (Komparator) und in einen Digitalwert umgewandelt den der Prozessor verarbeiten kann... Opamp also das täglich Brot. Von daher wundert es mich nicht, das es ein großes und auch wichtiges Thema zum allgemeinen Verständnis des Asuros ist.

Ähnliche Themen

  1. Verzweiflung!!
    Von Mom0 im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 07.02.2009, 10:10
  2. Hilfe in einem Schulprojekt (totale Anfänger)
    Von Freakz im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 15
    Letzter Beitrag: 10.05.2008, 17:31
  3. Robby auch für totale Anfänger??
    Von Toby im Forum Robby CCRP5
    Antworten: 5
    Letzter Beitrag: 04.06.2004, 22:04
  4. Totale Überarbeitung: NoName
    Von ShadowPhoenix im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 20
    Letzter Beitrag: 01.05.2004, 16:39
  5. Problem: Totale Verwirrung mit IC-Anschlüssen
    Von ShadowPhoenix im Forum Elektronik
    Antworten: 16
    Letzter Beitrag: 20.03.2004, 13:02

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress