Hallo,
ich lese immer von diesen beiden Compilern für den PICs.
Leider kann ich mir kein Bild machen, welcher nun tendenziell die
bessere Wahl ist. Oder welcher von Microchip besser supported wird.
Jetzt hat man mir gesagt, dass der HiTech den C18 ersetzen soll, ist da
was dran?
danke
J.
Also ich kenne beide Compiler, jedoch glaube ich das der HITech Compiler
offiziell nicht von Microchip ist.
Ich persönlich finde den C18 Compiler besser, da es dazu sehr gute
Einsteiger Beispiele gibt.
Im Pic-Forum hat mal einer HiTech Code gepostet, gleich kamen fragen was
das für ein Compiler ist und zwar von Leuten die es wirklich drauf
haben.
Wie gesagt für mich als Anfänger ist der C18 besser. Was ich jedoch
zugeben muss ist das die Syntax des HITech kürzer ist.
Hier ein Bsp.
Wenn ich beim C18 das Timer Statusflag löschen möchte mache ich das so:
PIR1bits.TMR1IF=0;
Beim HITech wäre das etwa so:
T1IF=0;
Die C18 Syntax ist zwar länger, jedoch irgendwie Transparenter.
Einfach immer REGISTERNAMEbits.NAMEvonBIT=0
Die Namen kannst hald 1:1 aus dem DB lesen, das finde ich ganz gut.
Soweit ich informiert bin wird Microchip HiTech kaufen oder hat dies
schon getan. Dann wird der HiTech Compiler direkt mit MPLAB IDE
installiert.
Mein HiTech Compiler schluckt die Syntax REGISTERNAMEbits.NAMEvonBIT=0
genauso.
Gruß
Tom
tom schrieb:> Mein HiTech Compiler schluckt die Syntax REGISTERNAMEbits.NAMEvonBIT=0>> genauso.
Coole Sache wusste ich nicht.
Aber da war doch was mit HITech dass der Compilierte Code grösser ist,
bei der gratis Version zumindest?
Nachdem ich mir überlegt hatte mal wieder etwas mit PICs zu machen habe
ich mir die Compilerfrage auch gestellt. Zuletzt habe ich den PIC-C von
CCS verwendet.
Im Netz ist wenig darüber zu finden. Ich habe selbst auch mal einige
Tests gemacht. Das ganze ist allerdings schon ein paar Monate her und
das PIC Vorhaben habe ich wieder auf Eis gelegt. Ich kann mich mit
Microchip einfach nicht anfreunden. Weiß selbst nicht warum. Nein, AVRs
benutze ich kaum noch.
Nach Vergleichen die finden konnte scheint der Hitech Compiler im großen
und ganzen einen etwas effizienteren Code zu erzeugen. Manchmal ist er
aber auch schlechter. Die Angaben waren aber schon älter.
Bei eigenen Tests ist mir folgendes aufgefallen:
C18 unterstützt keine anonymen Strukturen. Hi-tech ersetzt keine
Division durch Bit-shift wenn das möglich ist. Bei einem 'i/2' wird also
dividiert, der Ausdruck also nicht implizit in 'i>>1' umgewandelt.
Ansonsten konnte ich keine wesentlichen Unterschiede ausmachen. Da aber
die ominöse Codeoptimierung des PICC, die vielleicht noch etwas reißen
könnte, in der kostenlosen Version nicht zur Verfügung steht, würde ich
den C18 wählen.
Höhere Optimierungen wie sie der GCC durchführt beherrschen beide
Compiler nicht. Vor allem werden Zwischenergebnisse nicht
wiederverwendet:
1
x=i/2;
2
y=i/2;
3
z=i/2;
Oder
1
col1>>=8-bits;
2
col2>>=8-bits;
Ich verzichte lieber darauf zu schreiben was PICC und C18 daraus machen.
@ Michael Danke für den Beitrag sehr interessant.
GCC habe ich im Internet auch schon gesehen, damals suchte ich eine
Library
für einen DS1631. Dafür hätte ich aber bezahlen müssen, musste dann doch
alles selber machen. Was aber auch gut war habe da einiges gelernt ;)
Michael G. schrieb:> Höhere Optimierungen wie sie der GCC durchführt beherrschen beide> Compiler nicht. Vor allem werden Zwischenergebnisse nicht> wiederverwendet:x = i/2;> y = i/2;> z = i/2;> Odercol1 >>= 8 - bits;> col2 >>= 8 - bits;
Darf ich fragen woher du das weißt, bzw. gibt es da Quellen dafür?
Hmmmm... Ich benutze den C18 mittlerweile seit fünf Jahren und mir ist
in dieser Zeit nicht ein ernstzunehmender Fehler aufgefallen. Das Ding
ist ANSI-C kompatibel (wenn auch mit einigen wenigen Einschränkungen),
es gibt ihn umsonst und ob diese nach 60 Tagen wegfallende
Codeoptimierung sooo tragisch ist (ich habe bis jetzt in der Praxis
keinen Unterschied bemerkt) glaube ich nicht.
Den Compiler C18 als solches würde ich mit "gut" bewerten.
Was allerdings das absolut Elend ist, ist die schwache
MPLAB-Objektverwaltung, Fehler in Codebibliotheken, die nicht besonders
fortschrittliche IDE (wer das Intellsense von Microsoft nebst deren
komfortablen Editions kennt weiß was ich meine) und die Fehler in der
GUI als solches, die eigentlich nicht sein dürften (zB. auskommentierter
Text verändert Farbe beim markieren und verrutscht um mehrere Pixel),
gelegentlich verpixelter Bildschirmaufbau und nur geringe bis gar keine
Merkfähigkeit der Fensterpositionen. Das zieht sich bei mir über alle
Generationen auf allen Rechnern hin. Man hat manchmal das Gefühl, die
IDE wurde von Praktikanten, Linux-Hackern und Erstsemestern
geschrieben...
Pause schrieb:> Also ich kenne beide Compiler, jedoch glaube ich das der HITech Compiler> offiziell nicht von Microchip ist.
Ja und Nein. HiTech war bis vor noch nicht allzu langer Zeit
eigenständig. Nun hat Microchip den Laden gekauft und bietet die
früheren HiTech-Produkte als Premium-Compiler an. Daher gibt es auch
jetzt von Microchip ein MPLAB-Plugin für die HiTech-Toosuite. Find's nur
schade, dass sie die dazugehörige Eclipse-basierte Entwicklungsumgebung
von nicht mehr weiterführen. Ich fand HiTide übersichtlicher als MPLAB.
Ist aber wohl eher Gewohnheitssache.
ich hab mir letztens die MPLab runtergeladen und da war der C18 und der
Hi-Tech Compiler bei, warscheinlich nur die Testversion. Ich hab mich
schon an den mikroC gewöhnt... Allein die Einstellung der Config der
PICs ist ideal.
Lehrmann Michael schrieb:> Darf ich fragen woher du das weißt, bzw. gibt es da Quellen dafür?
Sicher. Ich habe mir das Listfile angesehen.
Es ist beim GCC nicht so einfach solche Tests zu machen, da der
Optimierer ziemlich aggressiv ist und gerne mal Variablen weg optimiert
und direkt Konstanten einsetzt. Daher habe ich einige Hilfsfunktionen
geschrieben.
Joachim schrieb:> Man hat manchmal das Gefühl, die> IDE wurde von Praktikanten, Linux-Hackern und Erstsemestern> geschrieben...
Wenn du das nach einem Vergleich mit AVRStudio <= 4.18 immer noch so
siehst, ist dir nicht mehr zu helfen. Wie kommst du darauf MPLAB mit
VisualStudio zu vergleichen?
Michael G. schrieb:> Sicher. Ich habe mir das Listfile angesehen.
Dann hast du sicher auch bemerkt, dass das du nicht für PIC kompiliert
hast. Dein Kompilat enthält keinen PIC18-Assembler.
Hi,
um mal die Spannung aus der IDE Frage zu nehmen:
Microchip bietet seit einiger Zeit MPLABX an, komplett neu und auf
Netbeans-Basis.
Das wird wohl auch der Grund sein, warum die Eclipse (HiTide) für den
HiTech nich mehr unterstützen.
Problem: Gibt noch kein CCS Plug-In, daher ist C18 jetzt auch für mich
interessant, weil ich gerne MPLABX verwenden würde.
Peter K. schrieb:> Microchip bietet seit einiger Zeit MPLABX an, komplett neu und auf> Netbeans-Basis.
Ist noch im Beta-Stadium, also keine vollwertige Alternative wenn man
ernsthaft arbeiten will oder muss.
> Wenn du das nach einem Vergleich mit AVRStudio <= 4.18 immer noch so> siehst, ist dir nicht mehr zu helfen.
FYI: Mit dem AVRStudio kann man keine PICs programmieren.
;)
Die Betaversio
Loonix schrieb:> Ist noch im Beta-Stadium, also keine vollwertige Alternative wenn man> ernsthaft arbeiten will oder muss.
Das stimmt. Wenn Du Softwareentwickler in einer Firma bist, dann sagt
Dir Dein Chef sicher, nimm das Sichere was wir kennen. Vermeidet sicher
auch Probleme. Genau deshalb wird immernoch VS 6.0 verwendet...
Und weil Microchip so ein kleiner Bastelladen ist, ist eine Beta5 auch
keine ernzunehmende Alternative. (Nebenbei: Die Compiler sind nicht
Beta)
Hier ging es aber mal um die Frage welcher Compiler sich anbietet und
wenn jemand jetzt mit PICs einsteigt, dann wäre es sicherlich einen
Gedanken Wert, mal zu gucken, was die Zukunft ist.
Michael G. schrieb:> FYI: Mit dem AVRStudio kann man keine PICs programmieren.
FYI2: Mit VisualStudio auch nicht.
Peter K. schrieb:> Und weil Microchip so ein kleiner Bastelladen ist, ist eine Beta5 auch> keine ernzunehmende Alternative. (Nebenbei: Die Compiler sind nicht> Beta)
Du hast den Ironie-Smilie vergessen. ;)
>Wenn du das nach einem Vergleich mit AVRStudio <= 4.18 immer noch so>siehst, ist dir nicht mehr zu helfen.
Wieso? ist AVRStudio noch hemdsärmliger? Ich kenne AVRStudio nicht. Und
JA, mir hilft schon lange keiner mehr.
>Wie kommst du darauf MPLAB mit VisualStudio zu vergleichen?
Beides sind IDE, ich kenne praktisch nur diese. Ich habe in früherer
Zeit unter Linux Code machen wollen... hab's dann aber gelassen, war mir
zu freakig.