Forum: Mikrocontroller und Digitale Elektronik PIC - Programmierumgebung für C


von Elolehrling (Gast)


Lesenswert?

Guten Morgen

Ich habe nun in den ersten 2 Ausbildungsjahren zum Elektroniker 
ausschliesslich in Assembler Programmiert. So langsam möchte ich auf C 
umsteigen, wird auch in den kommenden Monaten das Thema in der Schule 
sein.

Nun, ich dachte mir es kann nicht schaden wenn ich mich bereits im 
vorraus in das Thema einarbeite, so dass nicht alles neu ist. Habe nun 
bereits viel in meinem Buch gelesen und verstehe so langsam das Prinzip. 
Nun möchte ich gerne Simple Programme schreiben, mit denen es zb möglich 
ist einen Schalter abzufragen und danach eine LED ein/auszuschalten, so 
Anfängersachen zum besseren Verständniss.

Für Assembler habe ich immer mit MPLAB von Microchip Progammiert. Ich 
weiss, dass es für MPLAB auch einen C Compiler gibt, allerdings hat mir 
mein Berufsschullehrer davon abgeraten (Grund ungekannt, er wollte nicht 
weiter darauf eingehen).

Nun möchte ich gerne von euch wissen, mit welchem Programm ihr denn 
euren Code schreibt. Das ganze sollte für's erste Kostenlos sein.

MicroC von Microchip habe ich installiert, ein extrem nettes Programm 
muss ich zugeben... allerdings ist die Grösse des Codes in der 
Demoevrsion auf soweit ich mich erinnere 2kb beschränkt, was nicht 
sonedrlich viel ist, wie ich feststellen musste.

Kennt jemand von euch ein gutes Prorgamm ohne diese Einschränkung?

Und was haltet ihr von MicroC?

Bin dankbar für all eure Antworten!
Gruss

von MK (Gast)


Lesenswert?

Wo du dich auch mal umschauen kannst ist auf www.spurt.de ist sehr gut 
aufbereitet finde ich.
Gruß,
Matthias K.

von Elolehrling (Gast)


Lesenswert?

Ich vermute mal du meintest eher www.spRUt.de ?

denn auf Spurt.de erkenne ich keinen wirklichen zusammenhang mit uC oder 
sonstigem.

von Asrael1991 (Gast)


Lesenswert?

Also ich programmiere im MPLAB nun seit einiger Weile mit dem CCS 
Compiler!
Ein sehr guter C-Compiler jedoch nicht kostenlos.

von Erich (Gast)


Lesenswert?

Das Zeugs von sprut.de ist total veraltet!

Siehe meine Beiträge hier
Beitrag "Re: PIC Programmiereinstieg"

und hier
Beitrag "Re: PIC Programmiereinstieg"

Ich rate weiterhin, das Original PicKit3 zu kaufen, am besten zusammen 
mit der Lern-CD als "DV 164131" (= PICkit 3 Debug Express).

Gruss

von Elolehrling (Gast)


Lesenswert?

Danke für all die tollen Antworten bisher.
Ich werde sie mir gleich mal durchlesen!

@Erich:
Habe mir vor langer Zeit bereits ein PICKit 3 gekauft, aber danke für 
deine bestätigung. Nun weiss ich wenigstens dass es kein Fehlkauf war!

von Chris B. (dekatz)


Lesenswert?

MicroC ist eher von "www.mikroe.com" und nicht von MICROCHIP ;-)
Compiler ohne Einschränkungen: nimm die von MICROCHIP. Bei denen wird 
zwar nach 60 Tagen die Optimierungsstufe reduziert, gibt aber keine 
Codegrößenbeschränkung.
Als Auswahl hast du MPLABC18, MPLABC30, H-TECH-C bzw. XC8, XC16, XC32 
Wobei die XCxx Compiler glaube ich nur mit MPLABX laufen - bin mir da 
aber nicht sicher, einfach bei MICROCHIP direkt nachsehen, runterladen 
und testen....

von Elolehrling (Gast)


Lesenswert?

Ja, ich meine von Mikroelektronika, sorry... bei dem ganzen Miro hier, 
Mikro da geht sowas beim tippen schnell mal verwechselt.

und danke für deine Antwort. Ich werde mich gleich mal nach den 
Unterschieden im Internet erkundigen und danach mal schauen, ob einer 
von diesen meinen Wünschen entspricht. Man will ja schliesslich wissen, 
womit man es zu tun hat.

von edson (Gast)


Lesenswert?

Elolehrling schrieb:
> Für Assembler habe ich immer mit MPLAB von Microchip Progammiert. Ich
> weiss, dass es für MPLAB auch einen C Compiler gibt, allerdings hat mir
> mein Berufsschullehrer davon abgeraten (Grund ungekannt, er wollte nicht
> weiter darauf eingehen).

Wenn dein Berufschullehrer das nicht begründen kann, hat er meiner 
Meinung nach nicht die Kompetenz um zu beurteilen welchen Ansprüchen die 
Compiler genügen. Schau dir die Palette mal an und installier dir das 
passende Paket um es auszuprobieren. Die "Meinung" eines ahnungslosen 
BS-Lehrers soll dich nicht davon abhalten selbst auszuprobieren und dir 
ein eigenes Urteil zu bilden.

von Thomas S. (daimonion)


Lesenswert?

Schau dir mal die MPLabX Umgebung von Microchip an. Die ist kostenlos 
und die Compiler von MC arbeiten damit natürlich perfekt zusammen.

XC8,XC16,XC32 Compiler findest du auch auf den Microchipseiten. Von 
jedem gibt es eine Free Edition:

MPLAB® XC Free Edition:
-Supports all the devices and commands of the Standard and PRO Editions
No time or memory restrictions
-Limited code optimizations
-Unrestricted use—ideal for a low-cost academic or commercial solution
-Allows for all the code optimization and commands of the PRO Edition 
for 60 days – you decide when to turn it on.
-An option to activate the use of the PRO Edition features and 
optimizations is included. After 60 days, the compiler will revert back 
to the levels of the Free Edition

von Markus_AC (Gast)


Lesenswert?

Ich würde Dir auch zu den Microchip C Compilern raten.
Mittlerweile gibt es ja die MPLAB X IDE und auch XC Compiler.

Auch ohne Optimierung solltest Du erstmal gut damit zurecht kommen.
Erst wenn Du größeren Code erzeugen willst, musst Du überlegen, ob Du 
Dir die Lizenz kaufst oder einfach 'nen größeren Controller nimmst - MC 
hat ja jede Menge Auswahl.

von Bronco (Gast)


Lesenswert?

Um welchen PIC geht's denn überhaupt?

Ich programmiere PIC24 und dsPIC33 mit dem kostenlosen C30-Compiler von 
Microchip. Als Projektumgebung nehm ich den guten alten "Programmer's 
Notepad", zum Build und Debuggen dann MPLAB.
Das geht alles problemlos.

von Elolehrling (Gast)


Lesenswert?

Bei dem besagten uC handelt es sich um einen PIC16F887. Zwar vielleicht 
nichtmehr das neuste vom neusten, aber ich bin mir das Arbeiten mit 
diesem PIC angewöhnt und denke, um ein bisschen mit C rumzuspielen tut 
der's auch.

von Sunny (Gast)


Lesenswert?

PIC16F887 ist für C odr andere Hochsprachen nicht so gut geeignet, weil 
er wenig Speicher hat und der dazu noch in Banks unterteilt ist.Der Code 
wird viel grösser sein als in Assembler.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Elolehrling schrieb:
> dass es für MPLAB auch einen C Compiler gibt, allerdings hat mir
> mein Berufsschullehrer davon abgeraten

Was didaktisch auch verständlich ist da für einen Einsteiger sehr schwer 
zu handhaben.

Die MikroE Produkte sind da wesentlich einfacher (compilieren z.B. 
wesentlich schneller und sind klarer in Bedienung und Fehlermeldungen) 
und es ist auch an Leute gedacht die nicht professionell proggen. Die 2k 
Begrenzung wirst du am Anfang eh nicht erreichen, das ist schon ne ganze 
Menge Source Code.

Wenn du C kannst und größere Projekte anstehen ist der Wechsel zu MPLAB 
einfach. Anders herum ist es wesentlich aufwendiger.

von Der Rächer der Transistormorde (Gast)


Lesenswert?

Elolehrling schrieb:
> ..handelt es sich um einen PIC16F887... um ein bisschen mit
> C rumzuspielen tut der's auch.

völlig ausreichend. Wenn man von Assembler kommt ist C erstmal eine Art 
Makroassembler. Die Besonderheiten lernt man schneller mit einem 
kompakten Compiler als mit den Profikram (der bei MPLAB immer ein wenig 
hakelig ist)

Den Pickit binde ich übrigens mit Programming on change oder wie sich 
das nennt ein, damit wird der Pic automatisch neu programmiert wenn sich 
das hexfile ändert. Super praktisch, geht mit jedem compiler aber nur 
mit Pickit II (wozu man den Pickit III aber umflashen kann).

Mit dem integrierten serial terminal (über die Programmierpins) hat man 
dann gleich eine debugger Schnittstelle zum Nulltarif (bei Pickit II) 
die mit einer Software UART angesprochen wird.

von Erich (Gast)


Lesenswert?

>@Erich:
>Habe mir vor langer Zeit bereits ein PICKit 3 gekauft, ...

Hallo Leute,
der  Elolehrling hat bereits das PICKit 3  --drei--
also warum sollte er irgendwas mit einem ollen II machen?

Ggf. sollte er das ergänzen mit dem  DM164130-4  , das ist der 
PIC18F45K20 drauf. Sind 3 Platinen, 2 leere, 1 bestückte.
Dann den Compiler (frei) bei Microchip und die Lern-CD-Software (siehe 
Beitrag "Re: PIC Programmiereinstieg"), dann ist er auf 
dem Stand des PICkit 3 Debug Express.
Leider gibt's die DM164130-4 nicht überall, aber doch bei Farnell, 
Digikey, Mouser. Drankenkden für die beiden leeren Pcbs zwei zusätzliche 
uC mitzubestellen!

Gruss

von Master S. (snowman)


Lesenswert?

besorge dir einen PIC18 deiner wahl (3.3V versus 5V, genügend RAM und 
Flash), installiere MPLBX und den XC-Compiler: www.microchip.com/MPLABX
unter http://pic-projekte.de/wiki/index.php?title=Hauptseite findest du 
auch gute tips, beispiele und hilfe

PIC16 sind wirklich veraltet, das ist etwa so wie wenn du bei einer 
kutsche für pferde versuchst eine servo-lenkung einzubauen: irgendwie 
ist's vielleicht möglich aber echt nicht epfehlenswert. die PIC18 sind 
für den einstig wirklich sehr geeignet (noch nicht sehr komplex). und 
nochmals eines däftig drauf geben die PIC24 in leistung, ausstattung und 
komplexität.

von Michael S. (rbs_phoenix)


Lesenswert?

Ich finde dieses "derundder PIC ist nicht für C geeignet" oft ziemlich 
unrelevant. Ich denke dass Anfänger soeinen PIC-Speicher kaum bis zum 
Anschlag nutzen. Erst kommen kleinere Tests und dann kleinere Projekte. 
Ich persönlich habe in der Zeit weder Platztechnisch noch 
Compilergrenzentechnisch probleme gehabt und der C-Code war viel 
schneller geschrieben und übersichtlicher als in ASM.
Ich nutze auch gerne MikroC und bin in der freiversion nie an die grenze 
gekommen bis ich mal mit USB rumspielen wollte. Ich hab die usb-lib 
eingebunden und schon konnte ich nich mehr kompilieren, was mich dann 
dazu gebracht hat die Vollversion zu holen.

Ich bin seit ein paar Tagen dabei einige C Compiler für Pics mal 
gegenüber zu stellen. Ich will den Vergleich diese Woche noch hier 
vorstellen. Jedenfalls hab ich dabei auch einige Compiler benutzt und 
meine Meinung über diese gebildet. Es ist wie überall Geschmackssache.

Witzig finde ich, dass beim kostenlosen XC8 Compiler das Programm ca. 
doppelt so groß wird, als wenn man die PRO Version nimmt, wobei es beim 
XC16 hingegen ziemlich gleich ist (dort macht eher die Freiversion eine 
ein paar Byte kleinere hex).

Letztendlich: Mit MikroC wirst du bestimmt erstmal nicht an die 
Codebegrenzung kommen und grade Berufsschullehrer sind aus eigener 
Erfahrung auch nicht immer die hellsten. Auch die XC-Compiler haben ihre 
Daseinsberechtigung... Was ich persönlich schade finde ist dass man in 
MikroC das Pickit3 nicht als brenner einfügen kann und man immernoch 
über ein 2. Programm die *.hex brennen muss (wenn jemand weiß wie es 
geht, bitte melden ;) )

Für kommerzielle Produkte mag es anders aussehen, aber als 
Privatmann/Hobbyist kauf ich mir lieber ein paar mal im Jahr ein paar 
Cent teurere PICs mit doppeltem Flash, anstatt ich mir für z.b. 
500-1000€ den XC8 kaufe.

von Markus_AC (Gast)


Lesenswert?

Michael Skropski schrieb:

> Witzig finde ich, dass beim kostenlosen XC8 Compiler das Programm ca.
> doppelt so groß wird, als wenn man die PRO Version nimmt, wobei es beim
> XC16 hingegen ziemlich gleich ist (dort macht eher die Freiversion eine
> ein paar Byte kleinere hex).
>

Ich habe auch beim XC32 Compiler festgestellt, dass sich die paar 
hundert Euro nicht lohnen würden. Bei ca. 60k ist der Unterschied 
weniger als 1k zwischen freier Version und der Pro.

Was auch immer Microchip da gemacht hat...

Zum Thema:
Im großen und ganzen sind die meisten Compiler und IDEs Geschmackssache 
(wobei man bei Mircochip auf jeden Fall die MPLAB X IDE nutzen sollten - 
allein die Bedienung (Suchen, Projekt-Übersicht, etc) hat sich stark 
verbessert).

Der PIC der für dieses Projekt genutzt wird ist auch egal. Nen Schalter 
abfragen und eine LED steuern wird jeder können.

von Michael G. (let)


Lesenswert?

>> Witzig finde ich, dass beim kostenlosen XC8 Compiler das Programm ca.
>> doppelt so groß wird, als wenn man die PRO Version nimmt, wobei es beim
>> XC16 hingegen ziemlich gleich ist (dort macht eher die Freiversion eine
>> ein paar Byte kleinere hex).
>>
>
> Ich habe auch beim XC32 Compiler festgestellt, dass sich die paar
> hundert Euro nicht lohnen würden. Bei ca. 60k ist der Unterschied
> weniger als 1k zwischen freier Version und der Pro.

Das klingt nach einem Vergleich zwischen den Optimierungsstufen
-O1 und -O2. Da tut sich von der Größe her nicht viel. Mit -O2
läuft der Code aber schneller. Das wird bei den Compilervergleichen
gerne vergessen.

von Michael S. (rbs_phoenix)


Lesenswert?

Bei XC16 und XC32 ist in der freien Version die optimierung o1 
verfügbar. o2 ist noch mehr optimiert und o3 ist wie o2, nur mehr in 
Richtung Geschwindigkeit. os hingegen ist wie o2, nur noch spezialisiert 
auf Codegröße.

Ich finde, dass sich bei den beiden Compilern eine Proversion nicht 
lohnt. Bei XC8 ist es schon deutlich merkbar, dass man die hälfte sparen 
kann.

Klar ist Geschwindigkeit auch ein Kriterium, nur kann man die Codegröße 
einfacher und direkt ermitteln, der Compiler gibt es ja ansich immer mit 
aus. Er zeigt aber nicht, welche Funktion wieviele Takte braucht. 
Leider.

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.