Hallo, ich hab Probleme BASCOM zu erlernen. Ich hab zwar auf www.rowalt.de mir mal die Beispiele durchgelesen, aber dort wird nicht auf die Programmsprache eingegangen. Ich weiss nicht wie so eine Programmstruktur aussieht! Hab bis jetzt nur Assembler programmiert. Es geht mir quasi um das Programmieren an sich. Wer kann helfen?
Du gehst einfach auf die Homepage http://www.mcselec.com und lädst dir die Software als Demo herunter. Die Demo ist voll funktionsfähig, hat nur die Einschränkung auf insg. 2 kb Code. Zum lernen reicht das allemal. In dem Packet sind auch einige Demos und Hilfedateien. Werner
Ja, das Programm hab ich mir schon runtergeladen und auch schon in der Hilfedatei rumgestöbert. Aber wie gesagt ich hab keine Ahnung von BASIC!
Schau dir doch einfach die vielen mitgelieferten Beispiele an. Is Kinderleicht zu verstehen.
hi, brauchst du auch erstmal nicht. in assembler hast du ja die gleichen strukturellen vorgänge wie in jeder anderen programmiersprache. es gibt ja nur verzweigungen nach bedingung, schleifen mit lauf- oder abbruchbedingung und sprungziele. das sind schon die wesentlichen merkmale. nur musst du in hochsprachen, egal welche, nicht jeden firlefanz bis in's letzte detail anweisen, dafür gibt's dann z.b. 'config adc...', solche befehle machen ja nichts anderes, als alle erforderlichen parameter an register oder sonstwohin zu übergeben. an sich muss man doch nur in hochsprachen, die sich ja alle irgendwie ähnlich sind weil sie den gleichen zweck verfolgen, oder assembler unterscheiden. wer von assembler kommt sollte keine schwierigkeiten haben, sich in hochsprachen einzuarbeiten, weil ruckzuck klar ist, wofür man früher 'ne ganze batterie von anweisungen gebraucht hat reicht jetzt ein befehl. und welcher wofür gut ist steht ja immer im handbuch. fröhlichen einstieg in's leichtere prog-leben, gruss, harry
............An dieser Stelle müßte dannn das protestgeheul der Assemblerfetischisten kommen........... Ich setze als Wetteintrag mal ein Symbolisches Bier ;)
hi, das geheul kommt mit sicherheit noch, das bier ist dir sicher... prost
@Ratber Ich hab mir mal ein paar Beispiele angeschaut, hast recht verstehen kann ich sie einiger Maßen. @harry Das BASCOM bzw. BASIC leichter oder besser gesagt nicht so aufwendig ist hab ich schon gemerkt. :-) Das war auch ein Grund warum ich auf eine Hochsprache umsteige. Aber nochmal eine kleine Frage: Was bedeutet diese Zeile bzw. Befehl? Dim A As Byte A = 1 Also so wie ich das mir erklären würde, bedeutet das A den Wert 1 (dezimal) hat und ein Byte groß ist. Also 0000 0001 binär ausgedrückt. Stimmen meine Überlegungen?
Ursprünglich wird der DIM-Befehl zur Initialisierung von Arrays verwendet. Bei Basic kocht aber jeder sein eigenes Süppchen... Bei Bascom wird der DIM-Befehl mehr als Deklaration verstanden. Bei der zweiten Zeile fehlt streng genommen der LET Befehl (= Zuweisung eines Wertes zu einer Variablen). Allerdings wird der LET-Befehl zu 99% nicht verwendet. Insofern stimmen Deine Überlegungen voll und ganz.
Ach mensch, wieso gehst Du von ASM auf Basic? HEUUUUUL :-) Nein! Mit "DIM A As Byte" reservierst Du eine Variable "A" in der Größe eines "Bytes" im SRAM. "A = 1" ist, wie von Dir schon vermutet, in diese Variable "A" eine 1 zu schreiben. Man kann mit DIM auch ganze Felder reservieren wie z. B. DIM A(10) Aa Word Damit hast Du in der Variablen A 10 Words. Zugriff auf das geht dann mit A(1), A(2)...A(10). Gruß Andi
Ach so - damit Ratber nicht verdurstet - Ich programmiere lieber in Assembler, weil und überhaupt und heul. g (Überlege aber insgeheim, vielleicht doch auf Basic umzusteigen - aber dann auf einen Interpreter. Wer macht mit? - Hierzu auch mal unter "Atto-Basic" googeln, sehr interessant)
Sorry tut mir leid das ich umsattel. Aber wieso soll man seinen Horizont nicht erweitern dürfen? ;-)
War´n kleiner Scherz! Basic war auch meine erste Sprache (ZX81), dann kam Z80-ASM, MC68000-ASM, dann Pascal, dann lange nur Basic mit Access- und Visual-Basic auf PC und jetzt hats mich mit AVR-ASM bei den µC wieder gepackt. Aber ehrlich: Warum gehst Du dann nicht zu C? Ich habs bisher verweigert da mir zu kryptisch aber Du müßtest dafür doch noch offen sein. Gruß Andi
BASIC ist doch einfacher zu verstehen und BASCOM IDE ist doch eine tolle Sache oder!? C ist bestimmt auch nicht schlecht, aber man wird länger brauchen um es zu erlernen. Es spricht doch nichts dagegen das man mehrere Sprachen lernen kann. Also fang ich erst mal mit BASIC an, dann werde ich weiter sehen.
Steffen du hast vollkommen recht, lass dich nicht von Assmebler Guru´s überreden. Mit einem guten Basic-Compiler wie Bascom bist du in Sachen Produktivität den Assembler und C-Proghrammierern weit voraus. In der Zeit wo die eine Applikation entwickelt haben hats du schon 3 bis 4 Anwendungen fertig - wobei die in 99,9% der Fälle garantiert nicht schlechter sind. Viele reden von Assembler und C, aber schau dich mal um wieviel Quellcode man da wirklich findet. Das ist mager! Ich würde dir ein paar gute Bücher zu Bascom empfehlen, schau mal in das Basom Forum http://www.roboternetz.de/phpBB2/viewforum.php?f=32, Insbesondere in diesen Thread, hier werden gute Bücher und Links empfohlen: http://www.roboternetz.de/phpBB2/viewtopic.php?t=884 Jetzt werden natürlich wieder alle Assembler Guru´s aufschreien - versteht sich. Nur komisch das selbst in kommerziellen Bereich nur noch sehr wenige in Assembler programmieren - ob das nicht doch einen Grund hat ;-)
Bei Roboternetz bin ich auch vetreten als Sauginius. Ich denke jeder hat so seine Vorlieben und Meinungen bezüglich Programmieren, man sollte sich selbst seine Meinung bilden und Sprachen einfach ausprobieren. Dann wird man feststellen was einem am ehesten zusagt.
Sicher, dem einen liegt dieses, dem anderen das. Ich persöhnlich bin halt der Meinung, bei AVR am besten ASM oder C (wenn ich´s mal kann) und auf PC Basic (Access-Datenbanken, Visual-Basic). Ich weiß ja nicht, wie weit Du mit ASM fortgeschritten bist aber bezüglich Codegröße ist ASM oder C besser bei den AVR´s geeignet. Basic bläht halt doch ein bißchen arg auf wobei mir diesbezüglich FastAVR nen guten Eindruck machte. Mit ASM oder C kann man mehr Code in den gleichen Flash reinbringen als mit Basic. Bei PC´s ist es egal da schon seit einigen Jahren Performance und Speicher ohne Ende vorhanden ist (im Vergleich zu einem µC wie AVR). Gruß Andi
Hi >Nur komisch das selbst in kommerziellen Bereich nur noch >sehr wenige in Assembler programmieren - ob das nicht doch >einen Grund hat ;-) Jup. Es hat einen Grund. Sogar mehrere: 1. Es gibt für jede Maschine mindestens einen guten C-Compiler 2. ASM ist nicht auf eine andere Maschine portabel. 3. Die Anwendungen werden komplexer. Deshalb wendet man sich Sprachen zu die besser abstrahieren. Matthias
Sicher, man sollte die Sprache nehmen die einem am besten liegt - keine Frage! Das mag für den einen C und für den anderen Basic sein. Aber generell ist es so das man in einer Hochsprache einfach wesentlich schneller und produktiver ist als in Assembler, selbst dann, wenn einem Assembler eigentlich mehr liegt oder mehr Spaß macht. Also wenn ein Zeitlimit mit ins Spiel kommt, dann scheidet einfach fast immer ein Basic Compiler am besten ab. C kommt eventuell noch heran wenn man schon sehr gute Programmiererfahrung und gute Bibliotheken hat. An dieser Tatsache darf man nicht vorbei reden, auch wenn man aus Höfflichkeit keinen C oder Assembler-User verärgern möchte. Ich darf das sagen, da ich auf dem PC lange Zeit sehr viel in Assembler, C und C++ programmiert habe und deshalb auch diese Seite kenne.
der einzige unterschied ist, dass man beim uC wesentlich mehr auf ressourcen achten muss als beim pc. da kann es sich auch wieder rentieren wenn man keine ressourcenfressende hochsprache nimmt sondern eine schlanke (auch hochsprache) und dafür weniger kosten für die hardware hat
Mag sein, aber für den privaten Gebrauch bzw. kleine Anwendungen langt doch auch BASIC. Sonst würde es doch nicht so viele Leute geben die in BASIC proggen.
das liegt meiner meinung nach eher (ohne jetzt jmd zu nahe treten zu wollen) daran, das die meisten leute unbedingt was mit uC machen wollen aber die darunterliegende hardware noch nicht annähern verstanden haben. basic abstarhiert mit seinen ganzen routinen zu sehr von der hardware so, das man überhaupt nicht mehr verstehen muss wie der controller arbeitet. nur wenn dann doch mal etwas low level code gebraucht wird ist das geschrei wieder gross. oder wenn nach ein paar ganz 'simplen' gleitkomma rechnungen und printf befehlen der flash voll ist auch. ich hab nicht gegen basic als sprache an sich, nur gegen die unwissenheit die, vor allem im hobbybereich, dadurch gefördert wird, dass alles in fertigen funktionen erschalgen wird.
Es geht schon los mit Basic ne Ansteuerung eines LCD mit der Read-Leitung zu machen wegen Busy-Abfrage: Keine Chance. Oder ne andere Art der LCD-Ausgabe wie Zeilenscrolling für lange Texte, nicht das ganze Display sondern jede Zeile für sich, und das wegen Tempo über einen Buffer. Man kann versuchen mit Basic eine eigene Ausgaberoutine für LCD´s zu machen welche oben erwähntes kann, z. B. über Dimensionsfelder, aber da wird der Code dann ganz schön dick und die Performance geht drauf. In ASM und evtl. auch C ist es möglich, sich eigene Input/Output-Routinen zu machen die von Grund auf das können, was man will, in Basic wird das dann so zu sagen "Emuliert" da die Basic-Befehle compiliert ja doch recht komplex sind. Gruß Andi
@Harry/Thkais Danke,ging runter wie Öl ggg @Andi Auch ne gehobene LCD-Ansteuerung ist mit Bascom möglich. So wie die LCD,I2C,Gafikk-LC,1-Wire usw. Routinen in Bascom nur Codemodule sind läst sich auch ein passendes für deine Zwecke erstellen. Ich nutze gerne Die beiden I2C-LCD- und I2C-Tastaturmodule und bin zufrieden damit. Man sollte also auch von Basic keine Wunder erwarten. zudem lasen sich Basic und Assembler mischen.
@andi in c (zumindest avrgcc) ist es nicht nur möglich, sich seine routinen zu machen - man muss sie sich sogar selber machen (oder fertige suchen). dadruch hat man immer nur die funktionen die man wirklich (öfters) braucht und der code bleibt schön schlank. und falls mal eine leichte andere funktion gewünscht wird ändert man halt ein paar zeilen code, denn man hat ja den zugriff auf alle routinen und weiss wo was steht und wie es funktioniert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.