PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Start mit Programmsprache C??



Pilotzi
25.02.2008, 21:31
Hallo
mich würde mal Interessiern wie ihr Nagefangen habt zu Programmieren.Und ob ihr vorschläge habt wie ich Anfangen könnte.
MfG Pilotzi

Enrock
26.02.2008, 08:03
Servus,

also bezogen auf den PIC habe ich mit Assembler angefangen und benutze dies auch für die meisten Projekte.
Ich bin der Ansicht, dass Assembler der beste Einstieg ist, um die Hardware kennen zu lernen.

Gruß

T.J.
26.02.2008, 11:34
Ich habe für die ATmegas Bascom genommen und dann die Atmel Umgebung für Assembler.
Als ich dann Pics gekauft habe, hab ich auch einfach nur die IDE von MC genommen und ASM programmiert. Bei kleinen Projekten ist das meiner meinung nach noch besser.
Aber wenn man was größeres vorhat muss man sich entweder die Software besorgen um sein ASM Programm überschaubar zu machen oder C programmieren.

Felix G
26.02.2008, 12:46
Naja, leider ist beim Erlernen einer Programmiersprache gerade der Einstieg besonders schwer...

Denn zunächst muss man die Syntax kennen, und da führt an auswendig lernen leider kein Weg vorbei (bei C ist die Syntax aber relativ simpel). Und danach geht es - zumindest bei C - im Prinzip darum, sich die wichtigsten Funktionen der sog. "Standardbibliothek" zu merken (wobei das bei Mikrocontrollern allerdings nicht sooo wichtig ist, da viele der Funktionen ganz einfach nicht sinnvoll eingesetzt werden können)


Ich persönlich würde mich mal nach entsprechenden Büchern umschauen, so habe ich auch die Grundlagen gelernt. Und danach heißt es dann: learning by doing

oberallgeier
26.02.2008, 13:57
Hei, Pilotzi,

das mit "C" war vor einigen Monaten mein Problem (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=35618&highlight=). Nun - kann ich C immer noch nicht wirklich, es fehlt halt einmal der komplette Überblick, dann das verfügbare Wissen über alle Befehle und schließlich die Praxis. Aber meine Programme laufen. Vermutlich nicht optimal - aber das gilt sicher bis in die höchsten Perfektionsstufen.

Zu empfehlen ist einmal der Kernighan-Ritchie (Programmieren in C, Verlag Hanser, ISBN 3-446-15497-3, 20 oder 30 €) und natürlich neben, oder sogar vor, den hier veröffentlichten Codestückchen auch die tutorials:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
https://www.roboternetz.de/wissen/index.php/C-Tutorial/Interrupt-Programmierung
und später dann solche Feinheiten wie z.B.
http://www.mikrocontroller.net/articles/Bitmanipulation

Natürlich kann es Probleme geben (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=35437&highlight=). Die sind manchmal überraschend schnell behoben - weil es hier ein paar tolle Menschen gibt, die Dir teilweise mit unerschöpflicher Geduld helfen.

Also - anfangen, einfache Dinge probieren (vielleicht blos mal ein simples Codestück abschreiben, versuche das zu verstehen schreib ein paar minimale Änderungen). Tu´s einfach. Und viel Glück. Und das Netz heisst Netz weil es ein Netz ist, das Dich wirklich auffängt.

Pilotzi
26.02.2008, 14:15
Hi
Ja danke ich glaube ich gehe die Tage mal in die Stadtbibliothek und gucke mal bo sich was passnedes finden lässt.Aber so mach ich das bis jetzt auch angucken abschreiben versuchen zu verstehen und verändern.
So werde ich es dann wohl auch weiterhin machen :-D

MfG Pilotzi

Enrock
27.02.2008, 07:53
Servus,

also für Assembler gibt es genug Material in Netz. Sei es www.sprut.de oder einige andere hilfreiche Seiten. Des Weiteren stehen alle Befehle und deren Erläuterung im Datenblatt.
Mit Assembler lernt man meiner Meinung nach den Controller besser kennen und muss zwangsläufig verstehen, wie die Register arbeiten und welche Flags wann gesetzt werden.

Also ich wäre nach wie vor für Assembler und auf C kann man dann immer noch umsteigen. Aber das ist, wie auch die Wahl zwischen PIC und AVR Geschmackssache!
Gruß

Pilotzi
27.02.2008, 21:57
Danke für die vielen Antworten,
ich wollte jetzt mal ein Servo ansteuern, habe gelesen das man das mit PWM macht.Ich habe auch im RN-Wissen geguckt aber wurde aus dem nicht schlau was da steht.Es wäre sehr nett wenn mir vielleicht einer nen Programmcode in C schreiben könnte wo drinne bschrieben ist wie das mit der Pulsweitenmodulation ist.

MfG Pilotzi (der noch viiieeel lernen muss^^)

oberallgeier
27.02.2008, 23:08
Ein bisschen steht hier:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Die_PWM-Betriebsart
viel ausführlicher natürlich, in Englisch, steht in den Datenblättern. Die sind da sehr informativ.
Auf die Schnelle habe ich in meiner Linksammlung noch etwas für BASCOM:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?p=326430#326430
dann gibts hier auch ein paar Zeilen C code
https://www.roboternetz.de/wissen/index.php/Servos

Das sollte doch fürs Erste reichen?

Pilotzi
28.02.2008, 22:10
Hi
Oh danke....aber das verstehe ich nicht^^Ok dann fange ich wohl mit was leichterem an.Wie steuert man Sensoren an? z.B.:Abstandssensoren.
Oder was geben die aus?
Oder habt ihr was anderes womit ich anfangen kann?

MfG Pilotzi (danke für die gedult^^)

oberallgeier
28.02.2008, 22:25
Standardanfangsaufgabe beim Programmieren ist seit urdenklichen Zeiten ein Progrämmchen, das eine Ausgabe macht. Es soll auf Deinem Bildschirm - oder ein Controller an seiner Schnittstelle, z.B. der RS232 - den Text "Hallo, Welt!" ausgeben. Beim Controller liest Du das dann ganz einfach über das angeschlossene (Hyper-) Terminal.

Eine andere, einfache Aufgabe wäre:
Du lässt den Controller eine LED anknippsen, ein, zwei Sekunden leuchten (einfach bis hunderttausend zählen oder so) - und danach wieder ausschalten - und zählen - und einschalten - und .....

Enrock
29.02.2008, 07:48
Sers,

jup ich würd auch erstmal mit ner LED anfangen. Schau mal auf Sprut.de vorbei. Da werden allerlei Sachen zum PIC erklärt.
Wie schaut denn eigentlich deine Hardware aus?!

Gruß

Pilotzi
29.02.2008, 13:43
Hallo
Ja das mit der LED habe ich schon gmacht allerdings etwas fortgeschrittener nämlich mit 8 LEDs am PortB.Das hat auch ganz gut geklappt dafür habe ich den timer0 und benützt.Und habe noch eine frage:was ist den ein hyperterminal?
Mfg Pilotzi

dremler
29.02.2008, 14:27
das ist ein windows terminal programm,.....normalerweise zu finden unter

start->programme->zubehör->kommunikationsprogramme->hyperterminal

http://www.cisco.com/warp/public/63/capture_text_hyperterminal1.gif

mit dem programm sieht man was über einen beliebigen com port ankommt

Pilotzi
29.02.2008, 14:40
Moin moin
achso danke aber ich glaube das hat noch etwas zeit erstmal wollte ich ein kleines gefährt bauen, was wenn ich es anschalte los fährt und wenn es egegen eine wand fährt ca 90° zur seite dreht und dann weiter fährt?! meint ihr das ist schwer(also für meine verhältnisse)?

MfG Pilotzi