Forum: Mikrocontroller und Digitale Elektronik Basic-Compiler für PIC18F248


von Paul B. (paul_baumann)


Lesenswert?

Ich habe mehrere Platinen (wahrscheinlich Airbag-Steuergeräte) geschenkt
bekommen, auf denen sich PIC vom Typ 18F248 befanden. Ich habe sie
ausgelötet und möchte sie natürlich auch verwenden.

Das Problem ist: Ich habe noch nie mit PIC Umgang gehabt, außer für
jemand Anderen welche zu "brennen".
Ein Programmiergerät habe ich gebaut, (sog. JDM) und als 
Steuerungsprogramm
dafür "ICPROG"
Der 18F248 ist darin aufgeführt, so weit, so gut.

Frage: Gibt es einen freien Basic-Kompiler, der diesen Kontroller 
unterstützt? Ich fand PIC-Basic 2, das aber diesen Typ nicht beinhaltet.

MfG Paul

von hp-freund (Gast)


Lesenswert?


von Paul B. (paul_baumann)


Lesenswert?

@HP-Freund

Prima! Danke für den Link.

Zitat aus der Beschreibung:
"Great Cow BASIC is a BASIC compiler for PIC and AVR microcontrollers."

Das ist ja hochinteressant, wenn man auch AVR damit "bedienen" kann.

MfG Paul

von hp-freund (Gast)


Lesenswert?

Ja, ist mal ganz was anderes ;-)

von Michael S. (rbs_phoenix)


Lesenswert?

Ich weiß, es wurde nach einem freien Compiler gefragt, aber es gibt noch 
den MikroBASIC:
www.mikroe.com/mikrobasic/pic/

Ist in der Demoveraion voll nutzbar, ist aber leider auf 2kWords Output 
beschränkt. Du könntest alao nur 1/4 deines Flashes beschreiben. Hat 
aber sehr viel nützliche Libs und den Umgang damit ist aus meiner Sicht 
super. Ob dir das reicht oder nicht, musst du wissen.

von Paul B. (paul_baumann)


Lesenswert?

Danke Michael, den werde ich mir nachher mal ansehen. Freilich -der PIC
hier hat schön viel Platz und ist mit bis zu 40MHz taktbar. Das ist 
schon
eine feine Sache.

Ich mache mir erst mal ein paar Adapterplatinen auf DIL, weil der PIC
im SO28-Gehäuse dann besser benutzbar ist. (Steckbrett)

MfG Paul

von Michael S. (rbs_phoenix)


Lesenswert?

Paul Baumann schrieb:
> Danke Michael, den werde ich mir nachher mal ansehen. Freilich -der PIC
> hier hat schön viel Platz und ist mit bis zu 40MHz taktbar. Das ist
> schon eine feine Sache.

Die haben auch Basic-Compiler von AVR und ARM. Wäre warscheinlich 
relativ simpel die Programme für AVRs zu wandeln, sollten die PICs 
aufgebraucht sein.
Der PIC ist aber relativ alt. Da kriegst du bessere und schnellere, die 
deutlich weniger kosten. 6,50+MwSt (Mouser) ist happig.

von D. V. (mazze69)


Lesenswert?

@Michel,
ich arbeite schon seit über 5 Jahren mit diesen Compilern (vornehmlich
mit dem mikroPascal for AVR) aus Belgrad und habe mir nun mal den
"mikroBasic for PIC" runtergeholt und geregged, kann aber den vom Paule
zu programmierenden Chip nicht in der device-list finden (PIC16F248).
Da er noch kein Feedback über seine Erkenntnisse bezüglich des
mikroBasic Compilers gegeben hat, ist die eingeschränkte Codegrösse der
Demo sekundär, weil er erst einmal für den spezifischen Käfer eigens ein
pin/function-descriptor file kopieren/anpassen/generieren müßte.

von Nase (Gast)


Lesenswert?

Michael Skropski schrieb:
> www.mikroe.com/mikrobasic/pic/

Ich hatte gezwungenermaßen mit mikroC zu tun.
Zumindest der C-Compiler ist miserabel. Das erzeugte Assembly ist 
praktisch garnicht optimiert. Schlimmer noch, ich bin schon mehrmals 
'komischen' Fehlern nachgerannt, bei denen sich dann rausstellte, dass 
benutzte Variablen 'wegoptimiert' wurden und solcherlei Späße. Besonders 
schön, weil man das wirklich nur noch im Assembly findet.
Auch hält (bzw. hielt, vielleicht hat sich seit letztem Jahr was getan) 
sich der Compiler sehr subtil nicht an den C-Standard, was zu sehr 
schwer nachvollziehbaren Fehlern führte (etwa hat er Argumente an 
Ellipsen nicht auf 'int' aufgeweitet, wie es der C-Standard 
vorschreibt).

Der Pascal-Compiler wird sicherlich das gleiche Backend benutzen...

von Willi (Gast)


Lesenswert?

D. V. schrieb:
> kann aber den vom Paule
> zu programmierenden Chip nicht in der device-list finden (PIC16F248).

Liegt wahrscheinlich daran das es ein PIC 18F248 ist.

von Willi (Gast)


Lesenswert?

Nase schrieb:
> bei denen sich dann rausstellte, dass
> benutzte Variablen 'wegoptimiert' wurden und solcherlei Späße

Ich programmiere in MikroBasic und da ist mir das
noch nicht untergekommen.
Du kannst aber auch die Optimierungsstufe einstellen,
bis auf Null dann wird nichts weg optimiert.

von D. V. (mazze69)


Lesenswert?

Willi schrieb:
> Liegt wahrscheinlich daran das es ein PIC 18F248 ist.

Ja, sorry, der wird unterstützt.
Hab' ihn gefunden.

Aber die schlechte Qualität des Compilats kann ich bezüglich des AVR 
Comilers bestätigen. Der G-Code Interpreter (grbl/CNC) passt als 
GCC-Compilat locker in den 328, wohingegen das 1:1 mikroPascal Compilat 
mindestens einen 644 braucht.

von Paul B. (paul_baumann)


Lesenswert?

Michael Skropski schrieb:
> Der PIC ist aber relativ alt. Da kriegst du bessere und schnellere, die
> deutlich weniger kosten. 6,50+MwSt (Mouser) ist happig.

Ich habe die PICs nicht gekauft, sie sind ausgelötet. Bisher habe ich
nur mit AVR zu tun gehabt, nur wäre es doch schade, diese Kontroller
nicht auch zu benutzen. Sie haben auch eine CAN-Schnittstelle, das
CAN, äh kann auch von Nutzen sein.

Das Programm "Mikrobasic" habe ich nicht probiert, muß ich zugeben, denn
ich bin von dem "Great Cow Basic", was der HP-Freund empfahl, 
begeistert.

Hier blinkt eine LED, ein PIC-Kontroller tut schon seinen Dienst. Das 
ist
nur zur Funktionsprobe, da mache ich noch weiter...

Schönen Dank noch einmal für Eure Ratschläge und Hinweise.

MfG Paul

von Michael S. (rbs_phoenix)


Lesenswert?

Nase schrieb:
> Ich hatte gezwungenermaßen mit mikroC zu tun.
> Zumindest der C-Compiler ist miserabel. Das erzeugte Assembly ist
> praktisch garnicht optimiert. Schlimmer noch, ich bin schon mehrmals
> 'komischen' Fehlern nachgerannt, bei denen sich dann rausstellte, dass
> benutzte Variablen 'wegoptimiert' wurden und solcherlei Späße. Besonders
> schön, weil man das wirklich nur noch im Assembly findet.

Ich hatte bisher keine Probleme. Es hat immer alles funktioniert. Ich 
habe auch mal einen Vergleich gemacht, siehe: 
http://www.mikrocontroller.net/articles/PIC_C-Compilervergleich

Dort lag, zumindest von der Größe her, der MikroC zwischen der 2. und 3. 
Optimierungsstufe vom XC8 Compiler. Zugegeben geht es also 
besser/kleiner, doch die Differenz von 750$ ist nicht zu 
vernachlässigen.

Der C18 ist in der freien Version vielleicht besser, als der XC8 in der 
freien Version, allerdings nützt mir das nichts, wenn ich PIC12/PIC16 
oder neue (und günstigere) PIC18 nutzen will.

Das einzige, was mich ein bisschen stört, ist dass die libs nicht 
editierbar sind. Aber man kann ja immernoch (mit ein bisschen Anpassung) 
die von Microchip nehmen oder selber welche schreiben. Dennoch benutze 
ich den MikroC lieber als die MPLABX+XC8 Kombi.

Doch C interessiert hier ja nicht.


Paul Baumann schrieb:
> Ich habe die PICs nicht gekauft, sie sind ausgelötet. Bisher habe ich
> nur mit AVR zu tun gehabt, nur wäre es doch schade, diese Kontroller
> nicht auch zu benutzen. Sie haben auch eine CAN-Schnittstelle, das
> CAN, äh kann auch von Nutzen sein.

Das war ungünstig ausgedrückt. Ich meine, wenn die, die du hast, 
aufgebraucht sind, aber einen weiteren Aufbau haben willst, würde ich 
das Programm für einen AVR oder anderen PIC umschreiben und nicht den 
überteuerten uC nehmen.. Falls das denn überhaupt der Fall wird.

Paul Baumann schrieb:
> Das Programm "Mikrobasic" habe ich nicht probiert, muß ich zugeben, denn
> ich bin von dem "Great Cow Basic", was der HP-Freund empfahl,
> begeistert.

Dann ist ja alles Tutti. Ich progge in C, daher kenne ich sonst keinen 
BASIC Compiler. Den von MikroE hab ich auch nicht getestet, aber den C 
Compiler find ich gut, da dachte ich mir, kann der andere ja nicht so 
viel schlechter sein.

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.