hmm es sollte aber ien ä anzigen können. sonst musst du einen anderen zeichensatz wählen, oder das programm wechseln =)
Druckbare Version
hmm es sollte aber ien ä anzigen können. sonst musst du einen anderen zeichensatz wählen, oder das programm wechseln =)
Ähm (mit Ä), ich habe natürlich als erstes nur dein Beispiel ausprobiert. :oops:Zitat:
Zitat von robo.fr
Ich vermute, das turn einen 90-Grad-turn machen soll.
Super wäre noch eine Möglichkeit zum 'justieren' der Odo-Schwellwerte über Kommandos. (Später, später, später, reicht natürlich.)
Danke für den Code. (Da kann man ja nun auch turn zu 90 Grad machen)
Gruß Sternthaler
muss mal grad ne anmerkung machen... das ist keine esotherische programmiersprache! es ist einfach nur eine interpretierte, ungefähr so wie die alten basic-computer (c64, KC85 usw).
eine esotherische sprache wäre zB ein brainfuck-interpreter... der sollte sich eigentlich recht leicht implementieren lassen denk ich. oder?
Zugegebnermaßen ist AB++ im Vergleich zu Brainfuck wenig esoterisch. Bei der Beschäftigung damit geht es mir darum, etwas über Compiler- und Interpreterbau zu lernen. Esoterisch ist AB++ in dem Sinne, daß es wohl keinen Interpreter mit eigenem Syntax und mit quasi "eigenem" Betriebssystem auf einem Roboter mit so kleiner CPU gitbt.
Vielleicht hat auch jemand eine lustige Idee und baut eigene Komandos ein. Ich habe schon einiges gelernt, nämich daß die Informatik auf dem Gebiet schon viel weiter ist. Heutzutage verwendet man dazu wohl Compiler Compiler. Gut geeignet scheint Yacc
Es gibt nichts Gutes: außer man tut es! ( Erich Kästner )Zitat:
ein brainfuck-interpreter... der sollte sich eigentlich recht leicht implementieren lassen denk ich. oder?
ich denke da an den c64 =) der hatte zwar deutlich mehr ram, aber nur 1 mhz... das war ein ganz hübscher basic verschnitt.
aber ansonsten: find ich ne tolle idee! das ist das zwischensstück zwischen easyasuro und C/Bascom. :)
Zuviel der Ehre O:)Zitat:
zwischensstück zwischen easyasuro und C/Bascom. Smile
Der Speicher ist mittlerweile schon ganz schön eng geworden. Normalerweise kann ich bei meinen Programmen einem Atmega8 immer viel Platz mit der Compileroption "Os" schaffen.
Hat jemand eine Ahnung, warum das mit der ASURO Lib 2.6.1 nicht geht?
das sollte wohl gehen... aber versuche mal die anderen optimierungsstufen. im allgemeinen macht Os die kleinsten ergebnisse, aber nicht zwingendermaßen!
http://www.mikrocontroller.net/artic...timierungsgrad
Hallo robo.fr,
Mit der Lib sollte eigendlich alles in Ordnung sein.
Du nutzt so ziemlich die ganze Breitseite der in der Lib vorhandenen Befehle, so dass folgende Sourcen aus der Lib benutzt werden:
- adc.c
- asuro.c
- encoder.c
- encoder_low.c
- leds.c
- motor_low.c
- print.c
- time.c
- uart.c
Es bleiben nur ein paar 'Spezialisten' außen vor:
- i2c.c
- lcd.c
- motor.c (Ist 'nur' leistungsgesteuertes Fahren von stochri drin)
- rc5.c
- sound.c <-- Hierzu wäre noch ein Kommando TUUUT oder FIEP bei dir denkbar ;-) P.S.: Mein Alias deutet heute Abend nicht auf eine Verwandschaft mit Erich hin O:)
- switches.c
Trotzdem macht es Spaß, gerade weil es Groß ist.
Gruß Sternthaler
[EDIT]
Oh je, ich bemerke gerade, dass du noch die Lib 2.6.1 einsetzt.
Die ist sowieso noch nicht von m.a.r.v.i.n 'zerstückelt' worden. Hier wird immer der komplette Lib-Inhalt mit eingebunden.
Erst ab Version 2.7 wurde zerhackt.
Hallo Sternthaler,
vielleicht erfreut es Dich, selbst einen Befehl an AB++ dranzubasteln. Das ist relativ einfach:
1. Anzahl Keywords erhöhen hier MAX_KEYWORDS 11
2. neues Token erzeugen z.B. "tuut". Also TOKEN_TUUT
3. text für den Befehl in das Array keywords eintragen
4. den Befehlscode in die case-Auswahliste eintragen
Und schon hat man einen neuen Befehl O:)
********************** 1 ***************************
#define MAX_KEYWORDS 11
********************** 2 ***************************
enum {
TOKEN_TUUT,
TOKEN_LIST,
....
********************** 3 ***************************
static const struct word_token keywords[] =
{
{"tuut", TOKEN_TUUT},
{"list", TOKEN_LIST},
...
********************** 4 ***************************
( findet sich in uint8_t exec_token(uint8_t token) )
switch(token)
{
case TOKEN_TUUT:
{
sound(....);
}break;
case TOKEN_LIST:
{
list(); // list program
}break;
Hallo robo.fr,
danke für die schöne Bedienungsanleitung.
Mal sehen, ob ich zum TuuuuT-en komme.
Sieht im Innern von AB++ sieht es doch recht übersichtlich aus.
Sollte also auch für viele andere TUUT-er, PIIEP-er und weiters nicht so schwierig sein.
Gruß Sternthaler