Forum: Mikrocontroller und Digitale Elektronik Möchte neu anfangen


von Josef (Gast)


Lesenswert?

Guten abend.
Ich heisse Josef und bin 25j alt.

Ich arbeite im Moment mit den AVRs und Bascom und möchte jetzt auf PICs 
und C umsteigen.
Mit Basic habe ich schon was erreicht und kann von mir sagen, ich habe 
das Gefühl fürs Programmieren in Basic.

Von PICs habe ich fast keine Ahnung.
Von C habe ich GAR KEINE Ahnung. Nicht mal ansatzweise. Dieses (für mich 
unverständliche) Syntax mit Klammern usw. ruft bei mir nur 
Schweissausbrüche und Frustration hervor.

Habe schon ein wenig C angeguckt und bis jetzt NICHTS verstanden.
Habe auch keine Seite gefunden, wo wirklich von vorne rein erklärt wird, 
warum man 2x "=" schreibt und wocher die Klammern kommen und wochin 
diese müssen.
In allen Tutorials geht das sofort zur Sache mit einem Beispielcode, mit 
dem ich SO nichts anfangen kann.

Das ist jetzt nicht der erste Anlauf. Habe schon früher versucht, aber 
noch nie etwas auf die Reihe bekommen.

Habe jetzt keine konkrete Frage, brauche einfach einen Rat.
Habe Angst davor, die einfachsten Sachen nicht hin zu kriegen, obwohl 
ich schon in Bascom so viel kann.
Gebe leider schnell auf.
Jetzt habe ich das Gefühl genug Kraft zu haben, sich zusammen zu reissen 
und den Anfang zu schaffen.

Danke und Grüsse JP

von Stefan (Gast)


Lesenswert?

Und warum bleibst du nicht bei Basic ?

von mhh (Gast)


Lesenswert?

Den Frust mal von der Seele reden tut Dir sicher gut. Es könnte 
allerdings ein Fehler sein, in diesen Thread wieder reinzuschauen...

Also Kopf hoch und los gehts.

von Paul Baumann (Gast)


Lesenswert?

Es gibt für PIC auch Basic und Pascal-Kompiler. Wer (wenn nicht ein 
Chef)
zwingt Einen dazu, "C" zu verwenden?

MfG Paul

von Josef (Gast)


Lesenswert?

>Wer (wenn nicht ein Chef) zwingt Einen dazu, "C" zu verwenden?

Das ist fast der Grund. Meine Gesellschaft "zwingt" micht dazu PIC und C 
zu verwenden.

von Sam .. (sam1994)


Lesenswert?

Dann frag einfach was du bei den C tuts nicht verstehst. PICs werden dir 
das C-Programmieren nicht einfacher machen, ich würde dir (entgegen 
deines Beschlusses) empfehlen erst mal C auf einer Plattform zu lernen 
die du kennst: Entweder auf dem AVR oder auf dem PC (hier ist der 
Vorteil, dass keine HW fehlerhaft sein kann.

Manches muss man in C einfach so hinnehmen wie es ist. Natürlich gibt es 
auch einen logischen Grund dafür:
Josef schrieb:
> warum man 2x "=" schreibt
In C ist das einfache = der Zuweisungsoperator
Wenn du eine Abfrage mit einfachem = machen würdest:
1
if(a = b)
So ist das eine Zuweisung. a enthält danach den Wert b. Ob die Abfrage 
nun wahr ist entscheidet der resultierende Wert. Wenn das Ergebnis (also 
a) ungleich null ist, gilt die IF-Abfrage als wahr.
Vorteil des ganzen ist einmal, dass der Operator eindeutig ist und 
andererseits kann man ein wenig vielfältiger programmieren:
1
if((a = b) == c)
Diese Abfrage weist a b zu und vergleicht es mit c.

> und wocher die Klammern kommen und wochin diese müssen.
Welche Klammern? In C gibt es: [],{} und ().

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

PIC ist schon einmal keine Schlechte Wahl, wobei natürlich auch C auf 
AVR möglich ist. Es sit aber immer von Vorteil wenn man zumindest zwei 
oder drei Plattformen kennt um schon mal zu sehen was oft gleich ist und 
was jeweils Prozessorspezifisch ist und sich ändert.
Das hilft auch wenn dann mal der nächste Controller kommt.

Wenn jemand auch nur Ansatzweise plant etwas beruflich in dieser 
Richtung zu machen oder auch nur aufwendige Privatprojekte durchzuziehen 
geht kein Weg an C vorbei. Also Goldrichtige Entscheidung auf C zu 
setzen!

Aber zum Thema:
Zum lernen würde ich auf jeden Fall raten zuerst mal mit C auf dem PC 
einzusteigen. Also ein gutes Buch besorgen, einen C Compiler 
Installieren (gibt ja jede Menge freie, Visual Studio Express zum 
Beispiel) und damit die ersten Programme schreiben.
Erst wenn man dann die Grundzüge der Sprache verstanden hat den wechsel 
auf die µC vollziehen. Einfach weil man nur auf dem PC die sofortige 
Rückmeldung hat.

Ach ja:
Josef schrieb:
> warum man 2x "=" schreibt

Es gibt in C sowohl das einfache und das doppelte "=".
Das einfache = ist eine Zuweisung, das doppelte ist ein Vergleich.
ALSO:
Variable = 5; // Die Variable bekommt den WErt 5 zugewiesen
(Variable == 5) // Prüfen: ISt der WErt der Variable 5 oder etwas 
anderes?
;-)

Gruß
Carsten

von Nobody (Gast)


Lesenswert?

Die Frage ist halt, warum man verstehen will, warum es in C gerade == 
für einen Vergleich ist. Das ist wie verstehen zu wollen, warum man im 
Englischen den Satzbau eben anders als im Deutschen hat: weil es nunmal 
irgendwer (einer oder mehrere) so festgelegt haben.
Die Frage, WANN man diese doppelten = verwendet, wird jedoch sehr wohl 
in jedem guten Tutorial erklärt. genauso wie die Verwendung jeglicher 
anderer Konstrukte.

von Karl H. (kbuchegg)


Lesenswert?

> Habe schon ein wenig C angeguckt und bis jetzt NICHTS
> verstanden. Habe auch keine Seite gefunden, wo wirklich
> von vorne rein erklärt wird, warum man 2x "=" schreibt
> und wocher die Klammern kommen und wochin diese müssen.

Dann würde ich doch glatt sagen:
Beende den 2-Fronten Krieg und mach eines nach dem anderen.

Hol dir für den PC eine kostenlose Entwicklungsumgebung, geh in die 
nächste Buchhandlung und kauf dir ein C-Standardwerk. Zb den 
Kernighan&Ritchie "Programmieren in C". Damit fängst du erst mal auf dem 
PC an.

Und wenn du dann in C etwas fitter bist, dann erst suchst du im Web nach 
INformationen, wie man die Spezialitäten eines PIC in der C 
Programmierung berückischtigt.

Auf dem PC anfangen hat mehrere große Vorteile
Zum einen kannst du jedes Standardwerk mehr oder weniger 1:1 zum lernen 
benutzen. So Dinge wie Ein/Ausgabe funktionieren dort ganz einfach "out 
of the box", während du auf einem PIC schon relativ viel können musst, 
ehe du das erste mal Text auf einem Terminal siehst.
Zum anderen hast du auf einem PC viel bessere Debug-Müglichkeiten als 
auf einem PIC, wo du zunächst erst mal etwas fundiert raten musst, warum 
gewisse Dinge nicht funktionieren.

> In allen Tutorials geht das sofort zur Sache mit einem
> Beispielcode, mit dem ich SO nichts anfangen kann.

Das liegt wahrscheinlich daran, dass du dir Turoials für 'C auf einem 
PIC' angesehen hast und der Autor davon ausgeht, dass du C bereits 
einigermassen kennst. Das du da nichts verstehst ist klar: Du kämpfst 
gleichzeitig mit den C-Grundlagen und den Spezialitäten der 
PIC-Programmierung. Und sowas geht meistens ins Auge.

von Arno (Gast)


Lesenswert?

Hallo,

wenn du Englisch kannst:
http://mindview.net/CDs/ThinkingInC/beta3

Ich kenne nur Thinking in C++:
http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

Das war ok

von Josef (Gast)


Lesenswert?

Danke für die Unterstützung.

Der Tip mit dem Üben auf dem PC gefällt mir gut.
Werde mir Visual Studio Express besorgen und mich etwas umschauen.

Was könnte ich dann in C programmieren? Sorry für eine echt dumme Frage. 
Ich meine wenn ich µC programmiere, dann sehe ich dass eine LED blinkt.
Aber auf dem PC?

Danke

von Peter G. (Gast)


Lesenswert?

Hallo,

wenns schon an den C-Grundlagen scheitert, würde ich den Klassiker 
empfehlen:

Brian W. Kernighan und Dennis M. Ritchie: "Programmieren in C".

Wie Carsten Sch. schon geschrieben hat, erstmal auf dem PC ein Gefühl 
für die Sprache bekommen und dann auf dem µC anwenden.


Gruß Peter

von Peter G. (Gast)


Lesenswert?

Josef schrieb:
> Was könnte ich dann in C programmieren? Sorry für eine echt dumme Frage.
> Ich meine wenn ich µC programmiere, dann sehe ich dass eine LED blinkt.
> Aber auf dem PC?

z. B. Ausgaben per printf auf der Kommandozeile.

printf("hello world");   ;-)

von Josef (Gast)


Lesenswert?

http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
Was brauche ich nun davon? Passt irgendwie alles nicht, oder?
Grüsse

von Sam .. (sam1994)


Lesenswert?

Auf dem PC hat man eine Konsole.

Dein erstes Programm wird wahrscheinlich (wenn es nach einem Buch geht), 
"Hello World!" ausgeben. Man kann in der Konsole auch Eingaben machen.

von Karl H. (kbuchegg)


Lesenswert?

Josef schrieb:

> Was könnte ich dann in C programmieren? Sorry für eine echt dumme Frage.
> Ich meine wenn ich µC programmiere, dann sehe ich dass eine LED blinkt.
> Aber auf dem PC?

Mach dir da mal keine Gedanken :-)
In jedem ernst zu nehmenden Lehrbuch finden sich am Ende jedes Kapitels 
genügend Fragen und Übungsaufgaben. Wenn du die durch hast und alle 
Übungen tatsächlich machst, bist du fitter als so mancher hier im Forum.

von Peter G. (metalfranke)


Lesenswert?

Josef schrieb:
> http://www.microsoft.com/visualstudio/en-us/produc...
> Was brauche ich nun davon? Passt irgendwie alles nicht, oder?
> Grüsse

Es muss nicht Microsoft sein. Das hier reicht für den Anfang:

http://www.bloodshed.net/dev/devcpp.html

von Carsten S. (dg3ycs)


Lesenswert?

Josef schrieb:
> http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
> Was brauche ich nun davon? Passt irgendwie alles nicht, oder?
> Grüsse

VISUAL C++
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express

Jedes C Programm ist auch ein C++ Programm, C++ ist nahezu 100% 
Abwärtskompatibel (Es gibt nur WENIGE, sehr spezielle Ausnahmen). Daher 
kann jeder C++ Compiler auch C Programme übersetzen.

Einige C++ Compiler haben auch einen speziellen C Modus, geht aber auch 
ohne.

Gruß
Carsten

von Sam .. (sam1994)


Lesenswert?

Peter G. schrieb:
> Es muss nicht Microsoft sein. Das hier reicht für den Anfang:

Wird halt nicht weiterentwickelt und der Debugger ist nicht gerade das 
Gelbe vom Ei (ich benutze es zwar auch, aber für einen Anfänger ist VC 
doch komfortabler).

von Hans-Georg L. (h-g-l)


Lesenswert?

Peter G. schrieb:
> Hallo,
>
> wenns schon an den C-Grundlagen scheitert, würde ich den Klassiker
> empfehlen:
>
> Brian W. Kernighan und Dennis M. Ritchie: "Programmieren in C".
>

Aber wenn, dann das englische Original.
die deutsche Übersetzung ist nicht so gelungen ...

von Karl H. (kbuchegg)


Lesenswert?

Peter G. schrieb:
> Josef schrieb:
>> http://www.microsoft.com/visualstudio/en-us/produc...
>> Was brauche ich nun davon? Passt irgendwie alles nicht, oder?
>> Grüsse
>
> Es muss nicht Microsoft sein. Das hier reicht für den Anfang:
>
> http://www.bloodshed.net/dev/devcpp.html

Hätt ich jetzt auch gesagt.
Visual C++ ist dann schon eine ausgefuchstere Entwicklungsumgebung, die 
ihrerseits wieder einiges an Einarbeitung benötigt. Alleine das 
Erstellen eines neuen Projektes kann für einen Neuling schon zum 
Spiessrutenlauf werden. Am Anfang ist weniger oft mehr.

von Josef (Gast)


Lesenswert?

>Mach dir da mal keine Gedanken :-)
Dann bin ich beruhigt. :)

zum Visual Studio Express:
Ich habe da Folgendes zur Auswahl:
Visual Studio 2010 Express for Windows Phone - Passt nicht
Visual Web Developer 2010 Express - auch nicht
Visual Basic 2010 Express - ist das nicht wieder Basic, den ich schon 
kann nur etwas anders?
Visual C# 2010 Express - das ist dich nicht C, sondern C#, oder?
Visual C++ 2010 Express - C++ ist doch auch nicht C
Visual Studio 2010 Express ISO Images - für mich komplett daneben

Sorry, bin verwirrt.
Oder doch eine andere Umgebung/Compiler?

Grüsse

von Sam .. (sam1994)


Lesenswert?

Carsten Sch. schrieb:
> VISUAL C++
> http://www.microsoft.com/visualstudio/en-us/produc...
>
> Jedes C Programm ist auch ein C++ Programm, C++ ist nahezu 100%
> Abwärtskompatibel (Es gibt nur WENIGE, sehr spezielle Ausnahmen). Daher
> kann jeder C++ Compiler auch C Programme übersetzen.

von Josef (Gast)


Lesenswert?

Danke.
Werde mich langsam ran tasten.
Gruss JP

von Thomas E. (thomase)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Visual C++ ist dann schon eine ausgefuchstere Entwicklungsumgebung, die
> ihrerseits wieder einiges an Einarbeitung benötigt. Alleine das
> Erstellen eines neuen Projektes kann für einen Neuling schon zum
> Spiessrutenlauf werden.
Wieso?

Win32-Konsolenanwendung auswählen
Projektname eingeben
<OK>
<Fertigstellen>
Nicht wundern, daß die "main" "_tmain" heisst

  printf("Hello World");
  getchar();

<F5> und glücklich sein.

mfg.

von Hans-Georg L. (h-g-l)


Lesenswert?

Fang auf dem PC mit "normalem" C an ..
also Hello World und so auf Konsole ;)

Die Compiler für MCs haben oft Erweiterungen die nicht dem ANSI C 
Standard entsprechen und untereinander nicht kompatibel sind. Auch der 
bei MCs übliche starke Einsatz von Präprozessor Statements ist für 
Anfänger oft verwirrend.

von Hans-Georg L. (h-g-l)


Lesenswert?

Samuel K. schrieb:
> Carsten Sch. schrieb:
>> VISUAL C++
>> http://www.microsoft.com/visualstudio/en-us/produc...
>>
>> Jedes C Programm ist auch ein C++ Programm, C++ ist nahezu 100%
>> Abwärtskompatibel (Es gibt nur WENIGE, sehr spezielle Ausnahmen). Daher
>> kann jeder C++ Compiler auch C Programme übersetzen.

Wer aber weiter c code einfach in cpp Dateien verpackt hat nix von OOP 
verstanden.

von Sam .. (sam1994)


Lesenswert?

Hans-georg Lehnard schrieb:
> Wer aber weiter c code einfach in cpp Dateien verpackt hat nix von OOP
> verstanden.

Was hat das mit OOP zu tun? Man kann auch nicht OO c++ programmieren.

von Karl H. (kbuchegg)


Lesenswert?

Thomas Eckmann schrieb:
> Karl Heinz Buchegger schrieb:
>> Visual C++ ist dann schon eine ausgefuchstere Entwicklungsumgebung, die
>> ihrerseits wieder einiges an Einarbeitung benötigt. Alleine das
>> Erstellen eines neuen Projektes kann für einen Neuling schon zum
>> Spiessrutenlauf werden.
> Wieso?
>
> Win32-Konsolenanwendung auswählen
> Projektname eingeben
> <OK>
> <Fertigstellen>
> Nicht wundern, daß die "main" "_tmain" heisst
>
>   printf("Hello World");
>   getchar();
>
> <F5> und glücklich sein.

Genau das meine ich

Woher weiß ein Neuling, dass er eine 'Konsolenanwendung' braucht?
Warum heißt das _tmain und nicht main?
Was ist das für ein komisches stdafx.h? Davon steht nichts in meinem 
Buch.

Für dich und mich ist das alles kein Thema, aber einem Neuling muss man 
das alles erst mal beibringen.


Muss ja alles nicht sein.

von Sam .. (sam1994)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Woher weiß ein Neuling, dass er eine 'Konsolenanwendung' braucht

Das ist in DevC++ auch nicht anders.

von W.S. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Zb den Kernighan&Ritchie

Hehe, du Moderator!

gib doch dem jungen Mann nicht solche üblen Ratschläge!

Ich sag dazu: BLOSS NICHT. K&R ist megaout, weil alles auf derart 
miserablen Code hinläuft, daß man es selbst als C Gewöhnter nicht lesen 
mag.

Mein Rat an Josef, was C betrifft:
Lies die Definitionen zu ANSI-C. Das ist eine sozusagen reformierte 
Version der C Sprache, die heutzutage als Mindeststandard bei allen 
üblichen Compilern angesehen wird. Die ANSI-C-Reform hat C sozusagen aus 
der Gosse gezogen und in eine halbwegs verständliche Form gebracht. Wenn 
man heutzutage eine C-Compiler dazu bringen will, K&R C zu compilieren, 
muß man das zumeist auf der Kommandozeile explizit angeben, sonst hagelt 
es bittere Klagen vom Compiler.

Und nochwas zu den PIC's: Guck dir deren Doku an, lerne deren innere 
Struktur und deren Assemblercode. Es sind nur relativ wenige Befehle. 
Und lies die diversen Appnotes und Anwendungsbeispiele von Microchip. 
Wer offene Augen hat und kein Troll ist, der wird schon nach kurzer Zeit 
die Pfiffigkeit dieser kleinen PIC-Dinger mögen.

W.S.

von cyblord (Gast)


Lesenswert?

Mein Gott, da wundert man sich ja nicht mehr wenns nicht klappt. Visual 
C++ für den µC Einstieg in C. Ich werd nicht mehr.
Um auf dem PC mit C anzufangen, reicht MinGW mit GCC, ein Texteditor mit 
SyntaxHighling (z.B. Notepad++) und los gehts.

Das ist doch mit Kanonen auf Spatzen geschossen, wie kann man um eine 
Programmiersprache so einen Zirkus veranstalten? C mag nicht ganz 
einfach sein bis man durch den Pointer kram durch ist, aber der heilige 
Gral ist das nun nicht. Manch einer stellt sich aber auch an, in der 
Zeit in der man hier im Forum rumgammelt hätte man sich von lange das C 
von A-Z von Galileo Open Books reinziehen können und das erste Hello 
World würde schon laufen.

Manche solltens halt einfach lassen denk ich manchmal.

gruß cyblord

von Peter D. (peda)


Lesenswert?

Josef schrieb:
> Ich arbeite im Moment mit den AVRs und Bascom und möchte jetzt auf PICs
> und C umsteigen.

Dann würde ich Dir raten, nicht beides gleichzeitig, sondern eins nach 
dem anderen.
Wenn Du mit Bascom-AVR Erfahrung hast, sollte der erste Schritt darauf 
aufbauen.
Installiere AVRStudio und schon kannst Du die AVRs in C programmieren.
Im Simulator kannst Du direkt ausprobieren, was die einzelnen 
C-Instruktionen bewirken. Oder im AVR ausprobieren.
Dadurch, daß Du die gleiche Architektur benutzt, hast Du den direkten 
Vergleich mit Bascom und die Fehlersuche fällt bedeutend leichter.
Später kannst Du sogar versuchen, Deine Bascom-Programme nach C 
umzuschreiben.

Und wenn Du soweit gekommen bist, kannst Du dann die Architektur 
wechseln.
Das wird dann zwar auch erstmal holpern, aber C ist recht gut portabel.


Peter

von Sam .. (sam1994)


Lesenswert?

cyblord schrieb:
> Mein Gott, da wundert man sich ja nicht mehr wenns nicht klappt. Visual
> C++ für den µC Einstieg in C. Ich werd nicht mehr.
> Um auf dem PC mit C anzufangen, reicht MinGW mit GCC, ein Texteditor mit
> SyntaxHighling (z.B. Notepad++) und los gehts.

Ganz ehrlich. Als ich angefangen hab zu programmieren habe ich keine 
Probleme mit VS gehabt, das Konsolenzeugs hätte ich damals nicht so 
schnell geschafft.

von Matthias (Gast)


Lesenswert?

Hallo,

als ich mit C angefangen habe, ging es mir genau so wie Dir. Kryptisch 
aussehender Code und kein Verständnis, wie er aufgebaut ist. Da braucht 
man schon eine fachgerechte Anleitung. Im Grunde genommen ist C aber 
eine sehr konsequent aufgebaute Sprache, nur ist sie sehr umfangreich zu 
lernen. Geh mal auf www.galileocomputing.de und such nach "C von A bis 
Z". Davon gibt es eine Online-Ausgabe, welche nichts kostet. Nimm Dir 
die Zeit und lies es Schritt für Schritt durch. Und vergesse nicht, 
selber zu experimentieren. Hat mir sehr geholfen. Wichtig ist immer, 
dass man "langsam" lernt und nicht mit der letzten Seite, welche 
interessant klingt, anfängt. Das ist ein häufig gemachter Fehler! Auch 
wenn sich das Buch auf die PC-Programmierung bezieht, kann man es ohne 
Weiteres auf einen µC übertragen, auch wenn einige Funktionsaufrufe 
anders erfolgen.

von Alex (Gast)


Lesenswert?

Bei mir war es damals das Buch : 'Jetzt lerne ich C - Der Einfache 
Einstieg in ANSI C' von Peter Monadjemi und Eckart Winkler, 
Markt&Technik Verlag, und ein ATmega8 mit einer LED freiverdrahtet mit 
RIESIGEM LPT-Adapter zur Programmierung.

von Matthias (Gast)


Lesenswert?

Was auch nicht ganz so schlecht ist, sind die Bücher "C-Programmierung 
für 8051er" von Berg, Groppe und Klein. Allerdings beziehen sich die 
Programme häufig auf die Kommunikation mit dem PC über die serielle 
Schnittstelle und Hyperterminal und sind daher nicht auf dem aktuellsten 
Stand der Technik. Zum Lernen der Sprache C sind sie aber dennoch 
geeignet. Die Grundelemente der Sprache C werden auch dort vermittelt.

von Karl H. (kbuchegg)


Lesenswert?

W.S. schrieb:
> Karl Heinz Buchegger schrieb:
>> Zb den Kernighan&Ritchie
>
> Hehe, du Moderator!
>
> gib doch dem jungen Mann nicht solche üblen Ratschläge!
>
> Ich sag dazu: BLOSS NICHT. K&R ist megaout, weil alles auf derart
> miserablen Code hinläuft, daß man es selbst als C Gewöhnter nicht lesen
> mag.

Wann hast du das letzte mal einen K&R gesehen?

Deiner Schreiberei nach vor 30 Jahren.
In der Zwischenzeit hat sich einiges getan.

> Wenn man heutzutage eine C-Compiler dazu bringen will, K&R C
> zu compilieren, muß man das zumeist auf der Kommandozeile
> explizit angeben, sonst hagelt es bittere Klagen vom Compiler.

Jup. Du hast keine Ahnung wovon du redest.
Das Buch K&R behandelt schon lange kein Ur-C mehr, sondern ganz normales 
Standard-C

von Wichtel (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Warum heißt das _tmain und nicht main?
> Was ist das für ein komisches stdafx.h? Davon steht nichts in meinem
> Buch.

Genauso geht es mir als "noch-Anfänger" mit dem "neumodischen MS-Kram". 
;)
Nichts weltbewegendes, sicher erklärbar und kein Hinderungsgrund damit 
was werden zu können, aber alles erstmal "merkwürdig" vor allem wenn man 
mit anderen Compilern schon ein wenig Erfahrung hat.

Sehr empfehlen kann ich auch Code::Blocks.
Hat den Vorteil dass es auch gleich als AVR-Entwicklungsumgebung 
verwendbar ist ohne gleich alles mögliche einstellen oder 
dazuzuinstallieren zu müssen (bis auf WinAVR).

von Sam .. (sam1994)


Lesenswert?

Man muss nicht alles wissen. stdafx kann am Anfang auch ungewiss 
bleiben.

Unter Codeblocks hat meine Multithreadanwendung nicht funktioniert.

von Tippgeber (Gast)


Lesenswert?

Vorsicht! "Fahrschulanfänger" unterwegs .. ;)

> Sehr empfehlen kann ich auch Code::Blocks.
> Das hier reicht für den Anfang: ..bloodshed.net

könnten Anfänger eventuell verwirren mit Notationen wie "->" und "::" 
(siehe Screenshots etc.).

Zuviel "C++" intus für den Anfang ;-) d.h. schafft event. zusätzliche 
Probleme am Beginn beim Verständnis von (purem) C.

> Visual Studio 2010 Express  .. _tmain .. stdafx.h

Geht zwar auch für reines C (gute integrierte Hilfe). Aber wie man 
sieht, ruckzuck wird man (ja nach Einstellungen) mit einem _tmain, 
stdafx "gequält". Würde ich für einen Augenblick noch mal zurückstellen.

Besser für den Anfang sowas hier (REINES C, KEIN Cpp (C++)), schöne 
simple IDE. Also genau was man für die Konsole braucht (und auch für 
einfache Windows-Beispiele auf Win32-Code Basis. KEIN C++ MFC-Code 
(Microsoft Foundation Classes). Kann dafür C99!!

http://www.smorgasbordet.com/pellesc/

Dazu den Tipp von Karl Heinz Buchegger befolgen
http://books.google.de/books?id=88_-9d3P0wQC&pg=PP1&lpg=PP1&hl=de

Als "Vorschule" gewissermaßen kann man auch mal vor dem Lesen des 
mächtigen K&R hier einen Blick hier reinwerfen
http://www.rn-wissen.de/index.php/C-Tutorial

Wenn man doch eher DevC++ (der bloodshed von oben) einsetzen möchte 
(auch kein Thema), dazu gibt es hier ein Tutorial
http://www.c-programmieren.com/C-Lernen.html
http://www.c-programmieren.com/C-Lernen.pdf

von Wichtel (Gast)


Lesenswert?

Samuel K. schrieb:
> Unter Codeblocks hat meine Multithreadanwendung nicht funktioniert.

Dafür kann CodeBlocks herzlich wenig.
Wenn dann der GCC. Und wenn der ein Problem macht, kann man immerhin 
davon ausgehen dass es ein gängiges ist und es sich lohnt nach der 
Ursache zu suchen.
Und andere Compiler als der GCC kann CodeBlocks zur Not auch nutzen.

Tippgeber schrieb:
> könnten Anfänger eventuell verwirren mit Notationen wie "->" und "::"
> (siehe Screenshots etc.).

Dafür kann CodeBlocks ebenfalls nichts, wenn man C lernen will soll man 
das tun und wird vom entsprechenden Buch auch sicher keine Empfehlungen 
bekommen dort C++-Sprachelemente zu verwenden.
Die meisten anderen Compiler und ggf. dazugehörige IDEs sind ebenfalls 
für C wie C++ gleichermaßen geeignet. Einerseits muss man sich damit 
abfinden, andernfalls wärs wenig nützlich das Gegenteil erzwingen zu 
wollen.

von Martin (Gast)


Lesenswert?

Samuel K. schrieb:
> Dann frag einfach was du bei den C tuts nicht verstehst. PICs werden dir

Wer glaubt, "Tuts" sei eine angemessene Ausdrucksweise, der ist eh zu 
blöd zu programmieren. Warum äußerst du dich also in diesem Thread?

von Martin (Gast)


Lesenswert?

W.S. schrieb:
> Lies die Definitionen zu ANSI-C. Das ist eine sozusagen reformierte
> Version der C Sprache, die heutzutage als Mindeststandard bei allen
> üblichen Compilern angesehen wird. Die ANSI-C-Reform hat C sozusagen aus
> der Gosse gezogen und in eine halbwegs verständliche Form gebracht. Wenn
> man heutzutage eine C-Compiler dazu bringen will, K&R C zu compilieren,
> muß man das zumeist auf der Kommandozeile explizit angeben, sonst hagelt
> es bittere Klagen vom Compiler.

Du bist ein Volldepp.

K&R bringt selbstverständlich ANSI C bei. Und den Standard lesen, als 
Anfänger? Klar. Ist schon recht. tätschel

von Wichtel (Gast)


Lesenswert?

Martin schrieb:
> Wer glaubt, "Tuts" sei eine angemessene Ausdrucksweise, der ist eh zu
> blöd zu programmieren. Warum äußerst du dich also in diesem Thread?

Wer glaubt dass sich ein (mit seinen "zarten" 17 Jahren in "blöder 
Umgangssprache" gut trainierter) Mensch komplett umstellen muss um in 
einem Internetforum anderen Leuten zu helfen, dem ist nicht mehr zu 
helfen.

Dann kommst du, und das einzige was du beitragen kannst ist Trollerei. 
Muss ich noch fragen warum du dich in diesem Thread äusserst?

Ich könnte wetten dass du nicht halb soviel Programmierkenntnis wie er 
hast und mindestens doppelt so alt bist. Er weiss wenigstens dass es 
"Tuts" ;) gibt und vermutlich auch wie die Langversion des Wortes ist..

von Andreas D. (rackandboneman)


Lesenswert?

"Dieses (für mich unverständliche) Syntax mit Klammern usw. ruft bei mir 
nur
Schweissausbrüche und Frustration hervor."

Wenn man C-Syntax einmal draufhat ist sie viel logischer, weil man viel 
weniger kontextsensitive Sprachelemente hat die dann wirklich unlogisch 
sind. Bei C sind fast alle "Befehle" Funktionsaufrufe die sich dann auch 
strikt an die entsprechende Syntax halten müssen, während Basic-Dialekte 
weit mehr als nötig befehlsspezifische Sondersyntax ins Spiel bringen 
(zB das berüchtigte ; am Ende eines PRINT-Statements bei klassischem 
Basic)


Zumindest die kleineren PIC sind übrigens wirklich eine pessimale 
C-Plattform. Es spricht Bände dass für den AVR (Architektur ähnlich wie 
jeder "ganz normale Mikroprozessor") sehr schnell open source-Compiler 
verfügbar waren, was beim 8051 (sehr eigensinniges Speichermodell, aber 
mit System) schon etwas länger gedauert hat, und bei den klassischen 
PICs (Pseudo-Stack, SFRs stehen mitten im Addressraum rum...) immer noch 
Work in Progress zu sein scheint :)


Eine Konsole kann sogesehen jeder uC anbieten der eine UART mitbringt, 
man muss nur herausfinden wie diese zu initialisieren ist. Oder man baut 
sich eine in Software nach/nimmt vorhandenen Code dazu (Software-UART 
ist nicht soooo zu empfehlen zum Einstieg, wenn die irgendwo 
"Nebenwirkungen" hat sucht man lange nach dem Fehler).

Wichtig: Präprozessor-Code (alles was mit # anfängt) von der 
eigentlichen C-Syntax unterscheiden lernen.


Die wirkliche K&R-Syntax sollte man sich ansehen (gibt interessante 
Hinweise darauf wie das ein oder andere funktioniert) aber ganz bestimmt 
nicht verwenden.

von Sam .. (sam1994)


Lesenswert?

Wichtel schrieb:
> Samuel K. schrieb:
>> Unter Codeblocks hat meine Multithreadanwendung nicht funktioniert.
>
> Dafür kann CodeBlocks herzlich wenig.

Das stimmt, nur ich habe keine Einstellung im Compilermenü gefunden, die 
es behoben hätte.

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
Noch kein Account? Hier anmelden.