Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom und Asuro
Hi Leuts,
ich habe gerade angefangen Bascom zu entdecken und möchte gerne den Asuro in Basic programmieren. Leider stoße ich auf einige Anfangsschwierigkeiten. Schon die Umsetzung des "serwrite" aus der asuro.c ist im Moment noch nicht drin. :-( Kann mir jemand helfen ?
Merci bien,
Mucki
serwrite heißt in bascom einfach "print" ^^
ich hab mal die bascom version der befehle von RCO eingefügt, ich find mein programm grad nich
Martin
Hi x-ryder,
die kleine Bascom API hatte ich auch schon gefunden, deine kleine Testroutine hilft mir aber auf meine ersten bescheidenen Sprünge. ;-)
Noch 'ne Frage zum Pollswitch, wenn ich folgendes Hauptprogramm habe:
Do
Poll = Pollswitch()
If Poll <> 0 Then
Call Statusled(red)
Print Poll
End If
Loop
End
dann bekomme ich ja eine Menge Werte, nur nicht die aus asuro.c gewohnten 1,2,4,6,8,16,32 sondern sehr verschiedene. Sind das dann einfach Werte vom A/d Wandler die ich noch den Tastern zuordnen muss ?
Thx 4 help,
Mucki
was bekommste denn für werte? ich hab den asuro nämlich grad nich zur hand und kann da gucekn, ich glaube da sollten direkt die tasterpositionen rauskommen, bin mir aber nicht sicher, schreib mal was du da rausbekommst
Martin
Hi Martin,
habe ihn gerade auchnicht bei der hand aber die Werte lagen deutlich über den 2^x Werten wie ich sie durch die asuro.c Api gewohnt bin. Habe den Asuro auch gerade nicht zur Hand aber ich werde mir mal die Formel anschauen und dann melde ich mich noch mal...
Noch eine "blöde" Frage: mit PRINT gebe ich also eine Ausgabe auf den IR Port. Woher weiß denn das Basic, daß dies mein STDOUT ist ? Ich hätte jetzt gedacht, daß ich den entsprechenden Port erstmal initialisieren muss ?! Ich vermute ich denke etwas u die Ecke ... ;-)
Danke,
Mucki
das machst du schon mit dem befehl:
$baud = 2400
der rest ist bereits von bascom initialisiert worden
Martin
Hi Martin,
OK, war mir so nicht klar. Ich bin ja mal gespannt, was noch so auf mich zu kommt. Bin zwar kein C Freak aber irgendwie ist der Umstieg auf Basic schon ... sagen wir lustig. ;-)
Danke für deine Hilfe,
Maurice
Hi x-ryder,
neben meinen RN-Controll Probs bin ich natürlich auch noch mit dem Asuro dran. :-) Ichhabe die Formel innerhalb der Bascom Asuro-Api mal gecheckt und sie stimmt mit der in der C-Api überein. Dennoch bekomme ich im Basic Werte die eher im Bereich >500 liegen. Dafür habe ich bei der Odemetrie bei einem Tempo von 160 Werte um die 5 - 7 ! :-) Das Ganz eunter C funzt wie es soll.
Kann das jemand nachvollziehen ?
Thx,
Mucki
super_castle
28.01.2006, 09:23
das ist halt bascom und kein winavr-c.
wenn es unter bascom genauso laufen soll, musst du die routinen in bascom mit asm ersetzen in subroutinen mit $asm und $endasm.
darum kann man die routinen im allgemein vom asuro nicht umsetzen.
es sind dort sehr viele zeitkritische überwachungsroutinen drin, die bascom nur unter vorbehalt der asm-rouitnen schaffen tut.
es ist auch gut so, an diesem beispiel sieht man auch, wie schnell bascom in die knie geht wenn es um zeitintensive entscheidungen hinsichtlich der sensorik geht. und diese geballte sensorik im asuro ist für ein roboter der normale untere level, es kann sich mit der sensorik nur noch steigern und dann....
ich habe als bascom-user und winavr-c-user gemerkt, es lohnt sich nicht dieses in die bascomsprache umzusetzen wenn die reaktion so schnell bleiben soll.
für ruhende dinge (lcd, glcd usw) auf einem steckbrett usw kann man sehr schnell mit bascom die resultate erzielen, das ist ein vorteil.
castle
Hi Castle,
mir ist nur nicht ganz klar, warum die Werte dann so unterschiedlich sind. Das Bascom nicht so schgnellen Code produziert kann ich ja einsehen aber einen Sensor abfragen und den richtigen Wert liefern sollte doch auch damit klappen,oder ?!
Mucki
kannst du beide codeteile nochmal posten, dann such ich mal
Hi x-ryder,
mache ich heute abend nach der Arbeit.
Thx,
Mucki
super_castle
31.01.2006, 17:58
den richtigen Wert liefern sollte doch auch damit klappen,oder ?!
...wenn du meinst, dann wird es so sein, viel spass.
Castle
Hi x-ryder,
bzgl. der Kollisionstaster steht der Code ja noch oben in diesem Thread. Hier isr mein Code zur Odemetrie:
Speed = 100
Call Motordir(fwd , Fwd)
While Speed < 200
Call Odometrie()
Print Speed ; " Left: " ; Odoleft ; " Right: " ; Odoright
Speed = Speed + 2
Call Motorspeed(speed , Speed)
Waitms 40
Wend
Call Motordir(brake , Brake)
End
Dabei werden haltnur sehr kleine Werte ausgegeben. Wenn Bascom das nicht leisten kann (vorrausgesetzt mein Code ist richtig), dann ist eswirklich unbrauchbar. Was meinst du ?
Danke,
Mucki
Hallo Leute,
also, ich kann euch nicht garantieren, dass mein Programm sicher läuft. Ich habe es vor längerer Zeit geschrieben, als ich selber noch nicht ganz fit in bascom war. Es kann also gut sein, dass einige Bugs drin sind.
Tut mir leid, ich würde mich dem gerne wieder annehmen, aber ich bin zur Zeit leider komplett ausgelastet.
Sorry...
Hallo Moritz,
kein Problem. Ich habe jetzt erstmal Urlaub und dann schau ich mir die Sache mal in Ruhe an. Auf den ersten Blick konnte ich keinen Fehler entdecken aber die Tücken stecken ja oft im Detail.
Have fun,
Mucki
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.