Forum: Compiler & IDEs MPLab X IDE und Hi-Tech Compiler PICC18


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Konrad D. (hdoban)


Lesenswert?

Hallo,
ich habe lange mit MPLAB und dem Hi-Tech Compiler gearbeitet und war 
sehr zufrieden.
Nun möchte ich wegen neuerer PICs (und um aktuell zu werden) auf MPLAB X 
IDE und XC8 Compiler umstellen.
Meine Fragen:
- Kann der XC8 so viel wie der Hi-Tech PICC18?
- Müssen viele Änderungen in den Quellfiles vorgenommen werden?
- Gibt es große Änderungen bei der Umstellung?
Vielen Dank.
Grüße
Konrad

von Franko P. (sgssn)


Lesenswert?

Hallo
scheint ja dass du eh keine Wahl hast. ich habe noch nie mit was anderem 
als Microchip-Zeug gearbeitet. Vor XC8 mal mit dem C18. enn du willst 
kannst du mir mal einen HI-tech Code-Beispiel schicken, dann jag ich den 
mal über den XC8.

gruß
gerhard

von Volker S. (vloki)


Lesenswert?

Der XC8 ist mehr oder weniger der hi-tech Compiler

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Volker S. schrieb:
> Der XC8 ist mehr oder weniger der hi-tech Compiler

Geraten? oder nur im C90 mode gedacht,
XC8 kennt C99 mit lang Unterbau und hi-tech nur C90!
Optimierung ist auch wesentlich besser geworden.

C99 feature set eher unverzichtbar im Vergleich zu C90, wenn bekannt u. 
geschätzt.
Und für xc8 gibt es Medizin zum heilen/freischalten.

von Konrad D. (hdoban)


Lesenswert?

Hallo,
vielen Dank für die Antworten, dann steige ich da einfach mal ein, kann 
ja anscheindend auf gelegentliche Unterstützung hoffen :-)
Die XC8 Variante C90 scheint dann ja hoffentlich mit dem (relativ alten) 
Hi-Tech kompatibel zu sein.
Grüße
Konrad

von Konrad D. (hdoban)


Lesenswert?

Hallo,

bei der Umstellung vom Hi-Tech Compiler auf XC8 wird die Funktion 
"eeprom_read" nicht anerkannt. "Please use the MPLAB X MCC", heißt es.
Wie kann man diese aktivieren?
Danke.
Grüße
Konrad


 warning: unsupported: The Read_b_eep routine is no longer supported. 
Please use the MPLAB X MCC.
if ( (eeprom_read (EEPROM_AA) != 0xaa) && ( eeprom_read (EEPROM_55) != 
0x55) )

von Frank K. (fchk)


Lesenswert?


: Bearbeitet durch User
von Konrad D. (hdoban)


Lesenswert?

Hallo Frank Ch.
leider verstehe ich das nicht.
Der MCC ist jatzt in der MPlab X IDE installiert.
Eine Bibliothek pic10-pic12-pic16-pic18-1.82.1.mc3lib  habe ich mir auch 
heruntergeladen.
Frage: Muß ich in der MCC noch irgend etwas programmieren/konfigurieren?
Die Funktion "eeprom_read" war im Hi-Tech Compiler direkt verfügbar.

GRüße
Konrad

von Teo D. (teoderix)


Lesenswert?

Gugst Du linke Seite. Oben sind die bereits ausgewählten HW-Module, 
drunter die dir zur Verfügung stehen, inkl. noch so einiges SW, die ein 
HW-Module nachbilde uä.
Unter Hilfe gibst zu obigem, noch einiges an Text und hübsche Bildchen 
dazu.


PS: Konfigurieren musst Du den Mist, natürlich immer noch selbst....

: Bearbeitet durch User
von Teo D. (teoderix)


Lesenswert?

Ubs, das wird ja gar nicht als HW-Modul behandel... wozu auch.
Schau ins Compiler Manual!

von Frank K. (fchk)


Lesenswert?

Konrad D. schrieb:

> Frage: Muß ich in der MCC noch irgend etwas programmieren/konfigurieren?

Ja. MCC starten, MCC Classic auswählen (wenn danach gefragt wird), und 
dann sollte da in der Auflistung der Peripherie und Libraries Memory 
oder EEPROm oder so stehen, falls vorhanden.

> Die Funktion "eeprom_read" war im Hi-Tech Compiler direkt verfügbar.

Im Notfall schreibt man sich das halt schnell mal selber neu. Im 
Datenblatt steht ja, wie es funktioniert. Könnte in Deinem Fall 
vielleicht einfacher sein als über den MCC, der ja im Normalfall die 
komplette Initialisierung etc erzeugt.

fchk

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... viel Gelaber trotz Ahnungslosigkeit!

1. Für den Linker __eeprom vor die Deklaration setzen.
2. eeprom_read/write ist Teil der Library als Funktion oder Macro und 
wird mit xc.h includiert
3. Lesen! ch. 9.2
https://onlinedocs.microchip.com/pr/GUID-BB433107-FD4E-4D28-BB58-9D4A58955B1A-en-US-4/index.html?GUID-4AC38F0E-CD25-4BA0-947C-1BBF046B50DE

von Konrad D. (hdoban)


Lesenswert?

Hallo,

die Deklaration von:
unsigned char eeprom_read(unsigned char address);
ist doch in der Lib, oder? Wohin soll das "__eeprom"
Ich bekomme diese Fehlermeldung:
"warning: unsupported: The Read_b_eep routine is no longer supported. 
Please use the MPLAB X MCC."

Ahnungslosiskeit: ja, leider.
GRüße

von Franko P. (sgssn)


Angehängte Dateien:

Lesenswert?

Im Anhang 2 Dateien, wie sie der MCC für meinen PIC erstellt hat.

gruß

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Konrad D. schrieb:
> ie Deklaration von:
> unsigned char eeprom_read(unsigned char address);
> ist doch in der Lib, oder? Wohin soll das "__eeprom"

Programmierkenntnisse in C ?
und endlich mal das Compiler User Guide lesen!

example:

//init
__eeprom uint8_t eeOptions;
uint8_t options = eeprom_read(&eeOptions);

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.