PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : blutiger Anfänger will programmieren



sky2
02.03.2008, 10:21
Tag allerseits,

Ich habe noch keinerlei Erfahrung mit Microcontrollern, möchte jetzt damit anfangen.
Hab mich hier schon ein bisschen eingelesen und finde diese Page einfach super!

Ist die Bascom Sprache überhaupt für mich geeignet?
Welches Buch könnt ihr mir empfehlen? Dachte an dieses "AVR-Mikrocontroller Lehrbuch, Autor Roland Walter"


Ich hoffe diese Fragen wurden nicht schon 100mal gepostet aber ich will am Anfang nix falsch machen, bitte um Verständnis

Danke schon mal im Voraus

chr-mt
02.03.2008, 10:49
Ist die Bascom Sprache überhaupt für mich geeignet?
Ja
Mit Bascom kann man sehr viel machen, es gibt jede Menge fertige Routinen um zB eine Grafik-LCD anzusteuern etc.
Für viele Dinge reicht die Geschwindigkeit von Bascom aus,
für schnellere Sachen kann man Assemblercode einbinden.
Es kommt aber auch immer darauf an, was du vorhast.


Welches Buch könnt ihr mir empfehlen? Dachte an dieses "AVR-Mikrocontroller Lehrbuch, Autor Roland Walter"
Ja, das Buch ist prima, weil es auch etwas näher auf die Hardware eingeht und in einem guten Stil geschrieben ist.



Gruß
Christopher

Felix G
02.03.2008, 10:54
Basic ist eine relativ leicht zu erlernende Programmiersprache, und Bascom liefert schon viele "vorgekaute" Funktionen für die AVR Controller.

Allerdings halte ich genau das für problematisch...
denn wenn Bascom einem fast alles abnimmt, steht man bei Fehlern umso ahnungsloser da, weil man sich nie wirklich mit dem AVR beschäftigen musste.

C ist etwas schwerer zu erlernen, hat aber den Vorteil, daß es dir nicht das Denken abnimmt. Bei der Programmierung eines AVR in C musst du wissen, welches Register wofür gebraucht wird, und die Komponenten des AVR zu Beginn des Hauptprogramms alle von Hand konfigurieren.

Noch hardwarenäher ist nur Assembler, das bietet die eigentlich keine Hilfestellungen mehr, und um sinnvolle Programme schreiben zu können sollte man sich mit der Architektur des AVR schon etwas genauer auskennen.


kurz gesagt:
Bascom ist für Anfänger am leichtesten, aber in mancher Hinsicht vielleicht schon wieder "zu leicht". Außerdem ist die kostenlose Version auf relativ kleine Progrämmchen beschränkt.

sky2
02.03.2008, 11:17
Also wäre es besser mit C anzufangen, denn ich will ja nicht nach jedem kleinen Problem hilflos da stehen. Aber ich hab Angst das C zu schwierig ist für einen der überhaupt keine Ahnung hat wie ich.

Als Buch denke ich wäre das gut "C Programmieren von Anfang an, Autor Helmut Erlenkötter"

Aber welches Programm für C?

Oder soll ich bei Bascom bleiben?

chr-mt
02.03.2008, 11:38
denn wenn Bascom einem fast alles abnimmt, steht man bei Fehlern umso ahnungsloser da, weil man sich nie wirklich mit dem AVR beschäftigen musste.
Irgendwie wusste ich, daß das kommt... ;)
Wieso sollen Basic Programmierer bei jedem Problem hilflos dastehen ?
Auch Basic-Programmierer können Datenblätter lesen. :shock:

Gruß
Christopher

Felix G
02.03.2008, 11:56
Auch Basic-Programmierer können Datenblätter lesen.stimmt, aber C Programmierer müssen das von Anfang an tun, wohingegen man das Datenblatt bei Bascom meist nur dann rauskramt wenn mal ein Problem auftritt.

Ich finde halt, daß Bascom dem Programmierer zu viel Arbeit abnimmt. Und dazu kommt noch daß man eben darauf vertrauen muss, daß die mitgelieferten Funktionen auch wirklich das tun was sie sollen, und möglichst effizient implementiert wurden.

chr-mt
02.03.2008, 12:00
wohingegen man das Datenblatt bei Bascom meist nur dann rauskramt wenn mal ein Problem auftritt.
Und ganau das macht mir Bascom symphatisch.
Daß ich das Datenblatt eben nur rauskramen muß, wenn ein Problem auftritt :)

Gruß
Christopher

for_ro
02.03.2008, 12:05
Allerdings halte ich genau das für problematisch...
denn wenn Bascom einem fast alles abnimmt, steht man bei Fehlern umso ahnungsloser da, weil man sich nie wirklich mit dem AVR beschäftigen musste.

C ist etwas schwerer zu erlernen, hat aber den Vorteil, daß es dir nicht das Denken abnimmt. Bei der Programmierung eines AVR in C musst du wissen, welches Register wofür gebraucht wird, und die Komponenten des AVR zu Beginn des Hauptprogramms alle von Hand konfigurieren.


Bin ich voll deiner Meinung.
In der C-Community haben sie jetzt sogar beschlossen, nicht mehr auf Funktionen wie printf() zurückzugreifen, wenn sie etwas zum PC schicken wollen.
Die programmieren jetzt die Register und Leitungen direkt mit der richtigen Baudrate. Wahnsinn, und das jedesmal wieder aufs Neue. Da wird nichts verwendet, was man nicht bis zum letzten bewegten Elektron verstanden hat. Und man weiß dann sicher, dass man das optimal hinbekommen hat.
Etwas widersprüchlich finde ich die Ankündigung im C99 Standard bzgl. erweiterten Bibliotheken. Das geht doch wohl gar nicht.
Klar das Anfänger und insbesondere Basic Programmierer da überhaupt keine Chance mehr haben, etwas zu verstehen. Die werden dann in Ehrfurcht erstarren.
Entschuldige den Ausdruck Basic "Programmierer". Eigentlich sagt man wohl besser Konkatenierer, weil die ja doch nichts anderes können, als vorgefertigte Befehle hintereinander zu setzen.
Und schau dir mal die Anfänger im Mikrocontroller.net Forum an. Deren Fragen sind auf einem gaaaaaaaanz anderen Niveau. Ehrlich.

Gruß

Rolf

Felix G
02.03.2008, 12:12
Die programmieren jetzt die Register und Leitungen direkt mit der richtigen Baudrate. Wahnsinn, und das jedesmal wieder aufs Neue.Das wiederum halte ich für sinnlos, denn bei C hat man nicht umsonst die Möglichkeit seine Programme modular aufzubauen.

Auf printf zu verzichten ist eine Sache, aber den entsprechenden "Ersatz" schreibt man dann doch sinnvollerweise als wiederverwendbares Modul.

RoboPunk
02.03.2008, 12:31
Ich empfehle dir auch, gleich von Anfang an mit C anzufangen. C hat gegenüber von Basic viele Vorteile, einer ist zum Beispiel seine Vielfältigkeit, du kannst, wenn du es einmal gelernt hast, überall einsetzten weil du fast alles mit C/C++ programmieren kannst.

Und zum Thema AVR-Programmierung, C ist auch nicht so viel schwerer weil es auch für C schon fertige Funktionen gibt die du bloß noch einbinden musst. Außerdem gibt es auch viele Tutorials, die dir von Anfang an alles genau erklären, siehe microcontroller.net oder hier im Wiki.

Und ich persönlich finde C auch "interessanter", mir gefällt es einfach besser als Basic.

sky2
02.03.2008, 12:35
Ok ich hab mich für C entschieden

Ist das erwähnte Buch ok für mich?
Könnt ihr mir den Link schicken zu einem C/C++ Compiler oder wie das heisst.

Vielen Dank an euch allen für die schnellen Antworten

Delfin
02.03.2008, 13:15
hi sky2
erst einmal meinen Glückwunsch zu deiner Entscheidung. :)
hier ein link zu einer guten entwicklungsumgebung:
http://dev-c.softonic.de/download
Allerdings solltest du dir einen gcc oder so zu legen, falls du an die avr gehst.
Den gibt es z.b. mitgeliefert bei Rn-Control.
rob

RoboPunk
02.03.2008, 13:30
Eine Standard-IDE mit Compiler und allem Drum&Dran ist das AVR-Studio von Atmel. Hier (http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725)
kannst du die 4.13 Version herunterladen, die erste davon ist nicht registrierungspflichtig.

Auch gerne verwendet wird WinAVR mit dem Editor Programmers Notepad 2, den gibt es hier (http://sourceforge.net/project/showfiles.php?group_id=68108). Compiler ist da auch schon dabei, ebenso wie Mfile, damit kannst du dein eigenes MakeFile erstellen.

sky2
03.03.2008, 17:46
Kann man mit dem "Dev-C++ 5.0 beta 9.2 (4.9.9.2)" überhaupt mit C schreiben oder muss das C++ sein?
Hab nichts im Forum gefunden das meine Frage beantwortet.

sky2
03.03.2008, 17:52
hat sich geklärt aber trotzdem Danke
p.s Ja man kann

Delfin
03.03.2008, 18:01
In den Projekteinstellungen kannst du immer zwischen C/C++ entscheiden.
Außerdem kannst du in einer C++ Umgebung C Code schreiben, weil
C++ komplett auf C aufbaut. Du kannst nur C schreiben, oder auch die Vorteile von C++ nutzen, da ist alles möglich.

Vitis
03.03.2008, 22:29
C bring einem definitiv was, wenn man auch andere Plattformen proggen
möchte als AVR. Für AVR ist Bascom nach meiner Meinung meist
mehr als ausreichend.
Der Vorteil ist, man kann permanent dazulernen und hat dennoch
schon früh Erfolgserlebnisse, was für die Motivation, gerade bei
Einsteigern sehr förderlich ist.

Ich hab mit Bascom angefangen und zu Anfang auch praktisch
nur die Highlevelbefehle von Bascom verwendet ... das hat
richtig fun gemacht flott erste Ergebnisse zu haben.
Nach und nach habe ich mir dann, wie es in C auch üblich
ist, Libs erarbeitet, in denen ich gerade bestimmte Funktionen
die direkt mit den Registern arbeiten ausgelagert hab, die
ich nun ersatzweise zum Highlevelbefehl include und bekomme
so oftmals kürzeren und schnelleren Code.

Wenn man unstrukturiert Spaghetti programmiert wirds in egal
welcher Sprache nix rechts :)

Reeper
03.03.2008, 23:12
Also wäre es besser mit C anzufangen, denn ich will ja nicht nach jedem kleinen Problem hilflos da stehen. Aber ich hab Angst das C zu schwierig ist für einen der überhaupt keine Ahnung hat wie ich.

Als Buch denke ich wäre das gut "C Programmieren von Anfang an, Autor Helmut Erlenkötter"

Aber welches Programm für C?

Oder soll ich bei Bascom bleiben?


Erstmal kann ich Felix G voll und ganz zustimmen, genau zu dem Entschluss bin ich auch gekommen. Damit fing bei mir C an :-)

Das Buch ist sehr gut. Hatte es anfänglich nicht gemocht und es war sehr schwer zu verstehen (in meiner absoluten Anfangszeit). Doch nun, nach dem einen die Grundbegriffe, Regeln, usw. klar sind, ist es eine sehr gute Hilfestellung und gut zum Nachschlagen.

Eine ebenfalls gute Quelle:
http://www.galileocomputing.de/openbook/c_von_a_bis_z/

Gruß Stefan