C18 -> XC8 Migration

OP #4934612
Hallo Zusammen,

langsam aber sicher würde ich meine C18 Programme auf den XC8 Comiler 
migrieren. Bevor ich nun recht viel Zeit investiere habe ich ein paar 
kleine Fragen.

1. Gibt es im XC8 keine Funktionen wie im C18?
Im Netz habe ich hier viele unterschiedliche Meinungen gefunden. Das 
beschriebene Dokument Libary ist im doc-Verzeichnis meiner Installation 
nicht vorhanden.

2. Funktionen aus C18 in XC8 nutzen
Kann ich funktionen die ich unter C18 erstellt habe om xc8 weiter 
nutzen? Hierüber gibt das Netz ebenfalls sehr unterschiedliche Infos 
heraus. Es wäre sehr schade wenn ich diese Funktionen neu erstellen 
müsste.

Welche Optionen muss ich bei der Installtion beachten? Ich möchte mir 
nur ungern meine C18 Einrichtung zerstören?

Viele Grüße
Ingo
#4934677
1. Die peripheral lib wurde nur bis xc8 1.34 automatisch mit 
installiert. Danach ist ein separater Download und Installation 
erforderlich.
Bei vielen PICs funktioniert das dann aber trotzdem nicht mehr, weil die 
Header "aufgeräumt" würden.
Der dann vorhandene Source code kann aber auf jeden Fall verwendet 
werden.

2. Natürlich kann man eigene Funktionen weiterhin verwenden. Geringe 
Anpassungen könnten natürlich erforderlich sein, wenn diese zu C18 
spezifisch wären.

3. Bei der Installation kann nichts schief gehen, wenn du die 
angebotenen Optionen durchliest und nicht alles einfach bestätigt.
OP #4934908
Danke. Das hat funktioniert.

Bin schon am Testen. Weißt Du auch warum der printf Befehl im C18 
Compiler wunderbar funktioniert hat und im XC8 nicht.
1
        puts1USART("Hello World! \n\r");
2
        printf("Hello World! \n\r");


Mit puts1USART funktioniert es. mit printf leider nicht. Init kann ich 
mal ausschließen.

Ich habe mal im Netz gesucht da gehen die Meldungen bis ins Jahr 2012 
zurück. Ziemlich frustrierend am Anfang.

Ingo
OP #4935068
Hallo Klaus,

vielen Dank für die Antwort. Das ist wohl richtig das ist sicherlich in 
keinem Dokument festgelegt. Der Vorgänger C18 sowie eine Vielzahl 
anderer C-Compiler wie Keil usw. hat dies ohne Beanstandung so gemacht.

Ich habe es jetzt so umgesetzt.
1
sprintf(str_Temp, "%.1c", unc_Taste);
2
puts1USART(str_Temp);
3
puts1USART("\r\n");
4
        
5
sprintf(str_Temp, "%.3u", LATD);
6
puts1USART(str_Temp);
7
puts1USART("\r\n");

Viele Grüße
Ingo
Gast #4935190
Ingo S. schrieb:
> Der Vorgänger C18 sowie eine Vielzahl
> anderer C-Compiler wie Keil usw. hat dies ohne Beanstandung so gemacht.

Das kann natürlich nicht wirklich funktionieren. Woher soll der Compiler 
wissen, an welchem UART dein Terminal hängt und wie das zu konfigurieren 
ist.

Hier steht, wie man eine eigene Ausgabefunktion für stdout definieren 
kann. Dann kann man printf direkt benutzen

http://microchipdeveloper.com/faq:29

MfG Klaus
OP #4936482
Hi Volker,

da gebe ich Dir recht. Ich brauche ihn auc nur sehr selten Hin und 
wieder war der eben sehr praktisch.

Mein Fähigkeiten bei Strings sind etwas eingetrübt. Ich würde ganz gerne 
einen Sring aus verschiednen Variabelen zusammen bauen.

1
dt.Tag
2
dt.Monat
3
dt. Jahr
4
dt.Stunden
5
dt.Minuten
6
dt.Sekunden
7

8
str_DateTime = dt.Tag & "." & dt.Monat & ".20" & dt.Jahr & " " & dt.Stunden & ":" & dt.Minuten & "." & dt.Sekunden
9

10
//Hier ein Beispiel: 
11
//15.03.2017 10:02:17

Grüße
Ingo
OP #4936560
Weil ich einen fremdprogramn genau diesen String benötige.

Der print geht nur noch bedingt und mit sprintf kommen komische Zeichen. 
Parameter stimmmen einzeln kommen sie korrekt an.

Was ist für einen solchen String der beste Weg.

Ingo
#4936563
Ingo S. schrieb:
> Weil ich einen fremdprogramn genau diesen String benötige.
>
> Der print geht nur noch bedingt und mit sprintf kommen komische Zeichen.
> Parameter stimmmen einzeln kommen sie korrekt an.
>
> Was ist für einen solchen String der beste Weg.
>
> Ingo

Das Fremdprogramm läuft doch nicht auf deinem Kontroller.
Warum erst umständlich zusammenbauen. Kann man doch einfach nacheinander 
abschicken, oder?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.