Asuro - Anfängertauglich; totale Verzweiflung
jaja, ich weiß, ich bin ABNORMAL ;-)
also da hat sich einer (ich) der absolut keine Ahnung von nix hat einen Asuro-Bausatz "als Lötübung" zugelegt. In allen Beschreibungen steht ja, das dies ein Schulungsteil wäre, bestens dokumentiert, Infos an allen Ecken und für Anfänger/Einsteiger ideal...
Der Zusammenbau war kein großes Thema, aber dann selftest:
Alles gut gemacht aber beim Kollisionstaster K1 leuchtet LED UND der linke Motor läuft. Ein altbekanntes Problem, ich habe viel darüber gefunden, auch Ansätze das problem programmtechnisch zu lösen (pollswitch-Funktion)...
Eine Schritt für Schritt Anleitung? Irgendwas in der Aleitung/Fehlerbehebung? weit gefehlt.
Selbst im Buch "Mehr Spaß mit Asuro1" kein kleinster hinweis, wie man einen solchen Fehler beheben könnte.
Programmieren kann ich gar nicht. Ich dachte das dies vllt mit der Beschäftigung mit dem "Einsteigerrobot" mitwachsen würde. Weit gefehlt: ANleitung: sehr kryptisch, für mich unverständlich. Internet hmm, sieht nicht viel anders aus.
Jetzt versuche ich mir die Grundlagen in "C" selbst zu erarbeiten mit hilfe eines Buches "C- programmieren von Anfang an" erlerne ich erste Codes und versuche einen Einblick in diese Sprache zu bekommen. Das Buch ist gut, mühsam ist es trotzdem und für Asuro bringt es ?NIX?!
Ich versteh immer noch kein Wort, der Kollisionstaster tut immer ncoh das selbste, ich ahbe die 500erste Anleitung aus dem Web versucht anchzuvollziehen udn umzusetzen. Was immer nur darin gipfelt, das vielleicht dann das flash Programm oder sonst was grad nicht geht, oder oder einfach nur deprimierend...
Die Programme sind sind für mich so-wie-so ein graus. Mindestens 3 braucht man um irgendwas von a nach b zu übermitteln. Total unübersichtlich und umständlich...
LAnge Rede, kurzer Sinn - WAS MACH ICH FALSCH ? Das ganze kostet einen HAufen ZEit mit dem Ergebnis NIX. Ich versuche nun seit 2 Monaten den Asuro zum laufen zu bringen ( womit ich meine - das das testprogreamm fehlerlos ablaufen kann und die 3 Wahnsinnsprogramme an meinem Computer das tun, was sie sollen).
Irgendwie kann ich mir nicht vorstellen das dies ein guter Einstieg in die Materie ist.
Ein weiterer ernüchternder Versuch etws darüber oder daraus zu lernen war der Ausdruck des Atmel-Datenblattes des Atmega 8. 302 Seiten technisches Englisch, eine einfache, kurze Erklärung die über "besteht aus A/D-Wandlern, Speichern und Taktgebern" habe ich im Internet nícht finden können.
Gibt es nirgends eine Seite die sich mit diesem Bauteil ein bisschen tiefgründiger auseinandersetzt, ohne dafür 300 Seiten fremdsprachig ergründen zu müßen (so tiefgründig brauche ich eine Funktionsbeschreibung auch wieder nicht)...
Seit gestern Abend liegt Asuro wieder mal in der Schublade, ixch hab grad gar keinen Nerv mehr dafür. Vielleicht nächstes Wochenende wieder.
Irgednwie habe ich es geschafft, in den 2 Monaten die TAsterwerte auszulesen. Das war das Ergebnis:
Tastsensor Kalibration
Press Key 6
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Press Key 5
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
Press Key 4
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
Press Key 3
60 61 62 63 64 65 66 67
Press Key 2
60 61 62 63
Press Key 1
62 63
leider hilft mir dasa auch nicht weiter. Ich dachte EIN Taster würde EINEN Wert ausgeben. Wie gesagt - ich versteh überhaupt nix davon...
Grüße aus Wien
Abnormal
Liste der Anhänge anzeigen (Anzahl: 1)
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