Hi, ich würde gerne wissen, wieso man bei der Microcontrollerprogrammierung Basic oder auch Pascal einsetzt. Ich will hier keinen Glaubenskrieg entfachen, möchte bloß die Meinung der Leute hören.
Ich nehme an, weil sich diese Sprachen leichter als andere erlernen lassen. :-) MfG Paul
Weil es Leute gibt, die schon gewisse Kenntnisse in einer dieser Programmiersprachen besitzen (und meinen, die könnte man "einfach so" auf Mikrocontroller übertagen.). Gegenfrage: Was spricht dagegen, sie einzusetzen? Hochsprachen sind grundsätzlich für den Menschen einfacher zu lesen (auch wenn Hannes und ein paar andere Leute sich mit Assembler wohler fühlen ;) Assembler ist ja auch schon eine Art Hochsprache im Gegensatz zu einzelnen Bits...
Also, ich hatte zu Berufschulzeiten mit Asm den 8085 programmiert. War ganz ok. Als ich dann vor einiger Zeit anfing mich mit den AVR zu beschäftigen, hatte ich schnell gemerkt, daß bei ASM der eingesetzte Hirnschmalz nicht im Verhältnis zum Ergebnis stand. So bin ich auf Bascom gekommen und war sofort begeistert. Es macht schon Spaß, sich auf die eigentliche Programmstruktur konzentrieren zu können ohne per ASM das Rad immer wieder neu erfinden zu müssen, Stichwort Bibliotheken und viele mächtige Befehle. Was ich bisher gemacht habe, möchte ich um keinen Preis in ASM realisieren müssen. Was wohl ein kleiner Nachteil sein kann, ist, daß man mit ASM den Code schön eindampfen kann (wenn man es kann und Ahnung hat) und bei Hochsprachen auf die Fähigkeiten des Compilers angewiesen ist. Was ich wirklich mag, ist die Ideen 'einfach' runterschreiben zu können ohne mir einen abbrechen zu müssen. Wenn ich demnächst hoffentlich wieder etwas mehr Zeit zum rumspielen habe, werde ich mich aber auch mal mit 'c' beschäftigen. Happy Coding!!!! :-) Johannes
>Weil es Leute gibt, die schon gewisse Kenntnisse in einer dieser >Programmiersprachen besitzen (und meinen, die könnte man "einfach so" >auf Mikrocontroller übertagen.) Bis zu einem gewissen Grad geht das auch... Wenn man in einem Projekt unter großen Zeitdruck steht und darauf angewiesen ist möglichst schnell zu entwickeln, dann kann Bascom/BASIC schon ne Hilfe sein (leicht zu erlernende Syntax - wenn man sie eh schon kennt - BASIC eben!, fertige Libs für LCD, UART, uvm.). Da kann man ein Programm recht schnell "runterrotzen". Ob man da den Controller wirklich kennenlernt - ist dabei eine gaaanz andere Frage. BASCOM/BASIC ist schon so weit von der Hardware weg, dass das Verständnis für den Controller in den meisten Fällen auf der Strecke bleibt. (Meine Meinung dazu - ich progge in Bascom und C)
Bascom ist an sich ziemlich brauchbar. es sind viele funktionen zum umgang mit zahlen und ausgaben über rs232 dabei. LCD ansteuerung etc. und weil das preis/leistungsverhältniss und der support stimmt. klar c ist kostenfrei, aberfür den anfang ist basic einfach einfacher
Ich hab schon in mehreren Sprachen inkl. Assembler und Maschinencode PCs und uCs programmiert - Alles hatte so in bestimmten Bereichen seine Berechtigung: Assembler meist, wenn das Programm SEHR schnell oder SEHR klein sein muß, Hochsprachen eher für PCs. BasCom ist stark, wenn man schnell fertig werden muß und für's Prototyping. Man muß nicht ewig nach der richtigen Bibliothek suchen und mit 1 bis 2 Programmzeilen kann man ein LCD ansteuern oder eine Variable ins EPROM schreiben. Ein kleiner Nachteil in meinen Augen ist die Tatsache, daß es etwas unklar ist, wieviel Stack / frame man für bestimmte Funktionsaufruf-Tiefen braucht.. aber das gilt nciht nur für BasCom.
ich sehe halt die ganze Sache durch die Brille eines C-Programmierers, da kommt mir die Syntax von Basic oder Pascal einfach grotesk vor, sieht irgendwie zusammengeschustert aus.
Mehrere Brillen sind manchmal von Vorteil, z.B. um ein Status-Flag abzufragen.. :-) Was liest sich besser oder sieht grotesker aus: 1) while(!(SPSR & (1<<SPIF))){}; oder 2) Do : Loop Until SPSR.SPIF = 1 oder (das geht auch direkt in Bascom, läuft aber schneller) 3) !loop1: !sbis spsr,spif !rjmp loop1
O.K. was mir in C gefällt sind die Pointer. Wie löst man das Problem mit Basic?
1) while(!(SPSR & (1<<SPIF))){}; oder 2) Do : Loop Until SPSR.SPIF = 1 Aber, was verbirgt sich hinter dieser Schleife? Auf einem PC mag das egal sein, aber auf der Controllerebene... ich weiss nicht. 90% meiner Programme sind Echtzeitprogramme mit ein- und ausgehenden Daten. Da muss man auch mal sehen, wie Bascom die Zeile 2 umsetzt. Wenn es rein ums leserliche geht, wäre Pascal eine Alternative. Hat sich bei uns aber nicht durgesetzt. @ Carsten, zeig uns mal das Kompilat (heisst das so?). MW
Pointer: Es kommt zwar auf den Zweck an (.. den ich bei Dir nicht kenne), aber da gibt's in Bascom geeignete, zielführende Befehle: LoadAdr, LoadLabel, Cpeek u.a. / oder man benutzt ein Array und greift mit einer Indexvariable darauf zu: Dim myArray(256) as Byte Dim index as Byte index = 1 myArray(index) = &HFF usw. Ist eben auch 'ne Geschmackssache.. Kompilat: es kommt ein Hexfile 'raus, da hab ich noch nie 'reingeschaut. Bei 3) ist klar, was 'rauskommt, ist ja Assembler. Bei 2) weiß ich es nicht genau, aber ein Durchlauf dauert geschätzt nicht mehr als 20 Takte - kann also soo wild aufgebläht nicht sein.. Wenn Du es untersuchen willst, kannst Du 'ne kostenlose Demo von Bascom 'runterladen und beobachten, wieviele Takte vergehen, Hexfile analysieren usw.
Ich programmiere Mikrocontroller (AVR) in C da ich C gewöhnt bin und die Hilfe und Dokumentationen dafür sehr umfangreich sind, man hat Beispiele in hülle und fülle--> das macht C für mich zu der einfacheren Sprache. Auf dem PC aus Gründen die mit Faulheit bezeichnet werden könnten benutze ich VB bzw. VBA da MS Office nun mal nicht mit C sondern mit VBA ausgestattet wurde. Was mich zu der Frage bringt: Warum ist OpenOffice mit so einem Basic verschnitt ausgestattet worde und nicht mit C? Gruß zotos
hallo, muss ein programm schreiben um mit einer siemens photo diode eine lichthelligkeitsmessung durchzuführen,(LUX) hat jemand eine ahnung davon? wie ich den sensor programmiert bekomme? arbeite mit einem atmega8535
Ja, per ISP - was den Controller angeht. Keine Ahnung, wie man eine Diode programmiert :-)
Hallo, Zu Frage nach dem Compilat, http://www.roboternetz.de/wissen/index.php/Codevergleich_AVR-Compiler Hier hat schon jemand versucht C gegen Basic zu vergleichen... Leider waren die Basicleute nicht in der Lage alle Beispiele auszufüllen, aber ich glaube es reicht das eine Beispiel aus. Gruß Sebastian
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.