Na, na, na! [-XZitat:
Zitat von ehenkes
Druckbare Version
Na, na, na! [-XZitat:
Zitat von ehenkes
@Sternthaler: Doch dazu stehe ich! Schau Dir mal andere C-Bibliotheken an.
Warum wird denn asuro.c nicht eingebunden in libasuro.a? Warum gibt es keine Header-Datei, die die spezifischen Prozessorbezeichnungen mittels #define in für den ASURO sprechenden Symbole umwandelt? (vgl. z.B. iodefs.h beim Nibo)
@ehenekes
Weil es die Asuro-LIB ist, bei der du nicht mehr angeben must, dass es sich um einen ATmega8 handelt der mit 8MHz betrieben wird.
Ausserdem ist die CPU-Bezeichnung/Typ im Makefile mit MCU=atmega8 angegeben. Es ist halt so, dass zur Zeit kein Bedarf für eine Auswertung in den C-Sourcen zur LIB besteht.
Warum die asuro.c nicht in der libasuro.a ist? Steht in der Doku von m.a.r.v.i.n. Als Hinweis: Im Source sind die Interrupt-Funktionen drin.
@Sternthaler:
Das ist ein völlig anderes Thema. Ich möchte das hier deshalb nicht weiter ausführen. Es empfindet auch jeder anders, abhängig von Erfahrung und Ordnungsvorstellung. Wenn Du einen Thread "ASURO-Bibliothek" eröffnest können wir das gerne weiter ausführen, falls Du dies für konstruktiv hältst.
Für mich ist die Nibo-Bibliothek vorbildhaft. Die RP6-Bibliothek kenne ich noch nicht genau.
Nun warten wir mal ab, ob alias_host erfolgreich ist. Ich habe zumindest keine weiteren Probleme gesehen, aber bei Vista weiß man nie. Alles noch mit heißer Nadel gestrickt.
hmmmm
ich glaube ich lass es also mit vista funzt der scheiß bestimmt nicht...
wenn ich alles so einreichte, also die header raus und asuro.c rein, dann geht zwar alles, es kommt keine fehlermeldung aber wenn er fertig mit compilieren ist, dann stürtzt das programm ab...
wenn ich das programm dann neu starte, dann das projekt aufrufe, dann hängt es wieder. ein neues projekt erstellen kann ich aber. es kommt aber der gleiche fehler, wenn ich das neu erstellte wieder compiliert habe.
dann alles wieder von vorne.
das vista update für avr studio ist doch nur für 4.12 oder??
ich les mir mal https://www.roboternetz.de/phpBB2/ze...ag.php?t=30358 durch
Noch ein Hinweis:
int i=0;
for (i=0;i<100;++i)
Wer dies im C++-Stil programmieren will, also
for (int i=0;i<100;++i)
muss einfach als Compilerflag -std=C99 einfügen. So etwas geht beim AVR Studio allerdings nur manuell, also keine Combo-Box zur Auswahl.
Ist übrigens nicht abgestürzt! Sondern läuft mit 99% CPU-Auslastung (schau mal im Task Manager nach)Zitat:
wenn er fertig mit compilieren ist, dann stürtzt das programm ab...
Den Fehler kenne ich! Das liegt an AVR Studio Version 4.12!!! (aus dem Jahr 2005!)
Es gibt einen Servicepack für 4.12! Danach ging es bei W2k.
Besser ist 4.13
PS: Geschäftskunden haben übrigens, z.B. von Dell, wieder XP gefordert. Vista ist noch nicht reif, ist wie eine grüne Tomate, die zu früh vom Strauch gefallen ist. Bei Windows-Versionen sollte man immer mindestens 1-2 Jahre warten, wenn man damit arbeiten muss. Ab SP2 kann man mitmachen (XP: SP2, W2K: SP4)
also die datei, die da den fehler hervorrufen soll gibt es leider nicht auf meinem pc :(
C:\Program Files\Common Files\Microsoft Shared\OFFICE12\MSOXMLMF.DLL
den pfad zwar schon aber die datei nicht.
ps: ich nutze w2007
Du bist kein Troll?
http://www.dlldump.com/download-dll-.../download.html
OK, ein echtes Problem, unfassbar.
Bei Dir fehlt diese Datei und trotzdem ein Problem? Du hast schon das neue WinAVR vom Mai 2007?Zitat:
The only noticible difference was a bind to C:\Program Files\Common Files\Microsoft Shared\OFFICE12\MSOXMLMF.DLL, the Microsoft Office XML MIME Filter. To verify that this was the problem, I renamed that DLL, and BINGO, the problem goes away.
Naja, wie auch immer. AVR Studio hast Du dadurch gut kennen gelernt. ;-)
@Sternthaler: die ASURO-Bibliothek ist hier nicht das Problem. :)
also ich danke euch allen, wie mir geholfen haben eine HEX datei mit dem AVR Studio zu erstellen.
ES HAT GEKLAPPT!!!
soll ich die doku irgend wo hochladen. als html oder so???
oder meint ihr es stellt sich niemand so blöd an???
PS: wenigstens weiß ich jetzt, was .h, .c ... heißt
Was war noch der letzte entscheidende Fehler gewesen?Zitat:
ES HAT GEKLAPPT!!!
mein fehler:
habe gedacht, dass du das verzeichnis im avr studio meinst, weil ich bei java / eclipse gelernt habe, dass es nicht nötig ist, was im explorer verzeichnis zu verändern.Zitat:
Im Verzeichnis selbst musst Du nur Deine test.c haben, nix anderes! asuro.c kommt beim Projekt dazu. Die notwendigen Header includierst Du.
habe das etwas missverstanden. habe gedacht, dass asuro.c schon in den includes und in der lib dabei ist, wenn ich die pfade unter Projekteinstellungen festlege.
PS: das mit der if-Schleife habe ich schon gemerkt... danke
PSS: habe heute mal wieder meine VM Ware workstation angeworfen
Gratulation! Manche Wege sind verschlungen. Zum Glück prägen sich solche Dinge aber intensiv ein. Das nennt man dann Erfahrung.
Ja, das wäre so auch besser! Liegt am Design der ASURO-Bibliothek. Da wird für neue Ideen munter in asuro.c herum gewühlt, obwohl dort die grundlegenden Funktionen für den ASURO stehen, z.B. Init(). Das ist "gewollter Murks".Zitat:
... habe gedacht, dass asuro.c schon in den includes und in der lib dabei ist
ASURO ist fast schon Geschichte. Die Nachfolger können es besser machen. So etwas muss von Anfang an richtig gemacht werden, weil sonst die Programme nicht mehr mit der neuen Version laufen.
@ehenkes
Und wer ist dann immer so fleißig im Asuro-Bereich, wenn es schon 'fast Geschichte' ist? Es gab Zeiten, da hat jemand täglich 5 Beiträge hinterlassen.
Warum werden dann 5 Links zu 'verschiedensten' Beiträgen ohne Lösung in 'verschiedene' Foren angegeben, ohne auf den Thread zur Asuro-Lib zu verweisen? Da hätte man alles, auch zu den Einstellungen im Win-Avr, schon auf der ersten Seite nachlesen können.
Wer redet denn ständig von Lib's die nichts mit dem Asuro zu tun haben?
alias_host hat sein Problem in den Griff bekommen. Das zählt.
ASURO ist ein einfacher Einstieg, nicht mehr und nicht weniger. Ich empfehle ihn Anfängern immer noch, weil er leicht zu "löten" ist. Diesbezüglich finde ich ihn auch immer noch interessant. Die Bibliothek ist genau genommen aber "Anfänger-unfreundlich", weil zu "Prozessor-nah". Aber das ist alles Ansichtssache. :-k
Du kannst das ja alles besser machen als ich, hindert Dich ja niemand daran. Was fällt Dir eigentlich ein, meine täglichen Beiträge zu zählen? ;-)
@ehenkes
Na jetzt sieht dein editierter Eintrag ja viel freundlicher aus.
Gezählt habe ich nicht, nur geschätzt. Ausserdem sind die ja auch nicht schlecht, so dass man das ja auch lesen kann. (Warum muss denn da gelötet werden? ;-) )
Mit der LIB gebe ich dir recht, dass hier einige Probleme vorhanden sind. Allerdings sehe ich vor allem die 'Inbetriebnahme' als das größte Problem und nicht unbedingt den Inhalt. Haben wir hier ja miterlebt.
@sternthaler: Was alias_host hier vollführt hat, war in der Tat nahe an der Troll-Grenze. :) Dieses Thema der Projekterstellung mit AVR Studio werde ich in http://www.henkessoft.de/Roboter/ASURO.htm verarbeiten.
Meine bisherige Einschätzung zum ASURO:
Plus:
- leicht und schnell aufzubauen (einfache Platine, gute Anleitung)
- Jumper für Akkus/Batterien
- gute Dokumentation
- einfache Schaltung
- große Community, gutes Forum, zwei Bücher
- interessant für Bastler
- Man lernt den Prozessor und Regelungsstrategien (PID) selbst kennen
- Erweiterung ist einfach möglich (allerdings nicht I²C)
- kostengünstig (ca. 40 Euro)
- ebay-gängig
Neutral:
- Flash via IR (für Anfänger wichtig, bei Besitz von STK500 eher lästig)
Minus:
- programmtechnisch nicht einfach in Betrieb zu nehmen
- Kabelbinderbefestigungen (Motoren, Akkus)
- keine stabilisierte Spannung
- I²C-Bus blockiert
- vorhandene Bibliothek nicht optimal strukturiert (dadurch auch nicht anfängerfreundlich)
- Akkus AAA-Size
- Achsen kleben/löten
- aufgeklebter halber Tischtennisball (scheuert schnell durch, blockiert Elektronik)
- Erweiterung verdrängt Linienverfolgung
- Beschränkung durch ATmega8 (kleiner Speicher, kein sicherer "fast mode" auf I²C wegen 8 MHz, keine Co-Controller)
hmmm muss man das unter "Custom Compilation Options" einfügen???Zitat:
muss einfach als Compilerflag -std=C99 einfügen.
Klasse, Du bist mit AVR Studio beim C proggen und interessierst Dich schon für Compiler Flags. Weiter so! Einfach für [All files] in das Edit-Feld links neben "Add" einfügen und auf den Button "Add" klicken. Probiere es aus. Es funktioniert.
hmmm ja das habe ich ja auch gemacht...
aber dann kommt beim compilieren folgende fehlermeldung:
cc1.exe: error: unrecognized command line option "-std=C99"
-std=c99 sorry c wird klein geschrieben.
Auf diese Weise hast Du das Verzeichnis C:\WinAVR\libexec\gcc\avr\4.1.1 und seine drei exe-Dateien kennen gelernt.
Ein klares NACK !Zitat:
Die Bibliothek ist genau genommen aber "Anfänger-unfreundlich", weil zu "Prozessor-nah"
Was heißt hier zu "Prozessor-nah" ich finde es gut , es soll so Prozessornah wie möglich sein, abstrakte Sachen auf 8 Bit Prozessoren sind Käse, schau Dir mal Bascom und die Probleme, die die Leute damit haben an.
Da wird nicht überlegt, daß man einfachen Code schreibt, nein es wird mit Fließkommazahlen gearbeitet, sekundenlange Pausen in Interrupts gemacht mit Winkelfunktionen rumgebastelt und danach kommen Fragen und geheule.
Ich würde jeden Anfänger durch Assemblergrundkurs jagen, damit sie ein Gefühl für die Hardware bekommen.
Und nein Asuro ist lange nicht tot und glaub mir, kein anderer Roboterbausatz wird soviel Erfolg haben, wie Asuro.
Gruß Sebastian
Akzeptiert! Gute Idee.Zitat:
Ich würde jeden Anfänger durch Assemblergrundkurs jagen, damit sie ein Gefühl für die Hardware bekommen.
Daher habe ich auch folgendes Tutorial begonnen:
http://www.henkessoft.de/Roboter/stk500.htm
Zum ASURO:
Für Anfänger wirklich geeignet wegen der einfachen Platine. Das ist der Hauptvorteil. Eine Alternative ist ein Fertig-Roboter (wie RP6).
Mein Urteil zum ASURO ist ja noch ausgewogen.
Persönlich sehe ich ihn kritisch wegen der Bibliothek. Ich bevorzuge saubere Schichtungen und sprechende Symbole. An welchem Port meine rote oder grüne LED wirklich hängt, kann ich im Schaltplan und in einer iodef.h nachschauen.
Schön, vielleicht hast Du Lust zusammenzuarbeiten ?Zitat:
Ich habe das hier
angefangen, leider keine Zeit/Lust gehabt weiterzumachen :-#
Gruß Sebastian
@ehenkes
danke
Das ist ein nettes Angebot, das ich gerne annehme. :)Zitat:
Schön, vielleicht hast Du Lust zusammenzuarbeiten ?
@alias_host:
Hat das geklappt?
Willst Du mal was richtig Schwieriges machen? Nämlich mit AVR Studio in C++ programmieren? Da musst Du das MakeFile exportieren, manipulieren und als externes MakeFile wieder einbinden. ;-)
http://www.mikrocontroller.net/topic/52866
vllt habe ich da was für euch wir haben in der schule auch assembler gelernt. da hat unser lehrer na anleitung geschrieben... auch für dumme... alles schritt für schritt erklärt. timer interrupt und so n paar sachen.
jedoch hat er uns dafür eine platine zusammengelötet
baustein ist der atmel 8252
hier erst mal eine übersicht. da gibts auch gute sachen zu abel und zu alus...
http://josef-durler-schule.de/projekte/_index.htm
und hier das eigentliche:
http://josef-durler-schule.de/projek..._F/Rahmen1.htm
vllt findet ihrs ja gut
ich glaub da warte ich noch versuch grad nen timer
@izaseba
An dich geht ein ACK.
:cheesy: danke Sternthaler !Zitat:
@izaseba
An dich geht ein ACK.
@Sternthaler:
ergänzend zur ASURO-Bibliothek:
http://www.progforum.com/showthread.php?t=2764Zitat:
Die hohe Schule der C-Programmierung ist daher alle Hardwarezugriffe zu kapseln, d.h. in separate Treiberrroutinen zu verbannen. Also so ähnlich, wie beim PC.
Daher auch meine Forderung nach einer sauberen Strukturierung incl. iodef.h (oben angesprochene "Kapselung" der Hardwarezugriffe)
@ehenkes
Wir haben beim Asuro keine Treiber. Hier nennt sich das Funktion oder Makro.
Jede/s Funktion/Makro deutet über ihren Namen an, was im Asuro passieren soll. Wenn zufälligerweise ein Port-Bit in der Funktion gesetzt wird, um z.B. einen Pin auf +5V zu legen, könnte es darauf hindeuten, dass dann eine LED angeht. Der Funktions-/Makro-Name für so einen Fall könnte dann z.B.: StatusLED() heißen, und bekommt Parameter, über die dann die LED OFF, GREEN, RED oder YELLOW geschaltet werden kann. (Dieser Sachverhalt wir meistens in einer Dokumentation aufgeführt. Natürlich gibt es auch Dokumentationen zu den einzelnen Port-Pins. Diese kann aber machmal an einer anderen Stelle, also nicht bei der Beschreibung der hier beispielhaft erwähnten, fiktiven Funktion StatusLED() beschrieben worden sein.)
Ein Programmierer, der den Wunsch verspürt in seinem Programm eine LED an- und auszuschalten darf dann diese/s Funktion/Makro nutzen. Natürlich kann er sich auch erst durch viele Treiber, Includes Dokumentationen wühlen, im Internet nach Beispielen suchen oder in Foren Fragen stellen.
Siehe https://www.roboternetz.de/phpBB2/vi...=303976#303976
Hänge Dich nicht am Wort "Treiber" auf. Die "Hardwarekapselung" ist der entscheidende Halbsatz. ;)Zitat:
Wir haben beim Asuro keine Treiber. Hier nennt sich das Funktion oder Makro.
hat er recht.. man kann auch beim asuro treiber schreiben... =)