Forum: Mikrocontroller und Digitale Elektronik Gibt es hier PIC Fans, die mit MPLAB und CCS arbeiten?


von Christian Julius (Gast)


Lesenswert?

Hallo,

ich wollte mal fragen, ob es in diesem weitestgehend auf AVR 
spezialisierten aber gut frequentierten Forum auch PIC Fans gibt, die 
sich intensiv beruflich oder privat damit befassen, die MPLAB nutzen und 
den CCS C-Compiler?

Fragen tue ich deshalb, weil ich mit MPLAB 7.61a überhaupt nicht 
glücklich werde, vor allem weil sich die Config Bits des gewählten PICs 
(vornehmlich 18er) nach jeder Compilierung ändern aber nicht so wie sie 
sollen. Sie sind mit der #fuses Einstellung gesetzt. Ich habe bereits im 
chipedit nachgeschaut, die Masken für den 18F4685 stimmen. Ausserdem 
schmiert MPLAB ständig ab, immer beim Beenden aber auch wenn man einfach 
mal irgendwo hin klickt. Ich arbeite mit einer CCS Version 3.5xxx, da 
ich mir die neue 4er nicht mehr kaufen will, einmal bezahlen muss 
reichen.

Derzeit programmiere ich ein C-Modul zur Bedienung des RFM12 Transceiver 
Chips von Hope in einem möglichst gut kommentierten Code der auf dem 
Schichtenmodell aufbaut (Treiber Schicht, Anwenderschicht usw), der 
später als Modul verwendet werden kann. Vielleicht hat das ja auch schon 
jemand gemacht und kennt auch die Probleme mit dem Transceiver, zb lässt 
sich der Quarz nicht wie beschrieben durch Ändern der Lastkapazizität 
ziehen, auf dem Frequenzzähler tut sich nichts, wenn ich das Register 
beschreibe, dabei liegt der Quarz leicht daneben. Auch ist mir noch 
nicht ganz klar, wie ich den Frequenzoffset von sender und Empfänger 
verändern kann, derzeit fällt mir nur ein die Empfangsfrequenz der PLL 
in 2,5khz Schritten zu ändern, bis der Offset minimal wird, der mir im 
Status Register bei abgeschaltetem AFC gemeldet wird.

Freundliche Grüsse,
Christian Julius

von Rudi (Gast)


Lesenswert?

Hallo Christian,

ich glaube, dort bist du, wenn es um PIC's geht, besser aufgehoben:

http://www.fernando-heitor.de

Beste Grüße

Rudi

von Christian Julius (Gast)


Lesenswert?

Hallo,

dort bin ich gerade erst nach einer halbjährigen Testphase verschwunden, 
weil das Forum meiner Ansicht nach zu gering frequentiert wird, es 
dauert endlos lange bis Antworten kommen sofern überhaupt. Schreibe ich 
selbst Antworten hat man das Gefühl, dass der Frager schon längst 
weitergezogen ist. Alternative wäre noch de.sci.electronics aber das 
läuft mir zu schnell durch wegen der zigtausend User, die dort 
schreiben.

Gruss,
Christian

von Rudi (Gast)


Lesenswert?

Hallo Christian,

ich kenne mich mit dem CCS-Compiler nicht aus.

Nichts desto trotz kannst du die Config-Bits aber auch unter MPLAB 
einstellen, losgelöst von deinem Source-Code.

Das  geschieht unter 'Configure' 'Configurtion Bits'. Bitte beachte, 
dass du dann das Häkchen 'Configuratin Bits set in code' löschst, sowie 
die entsprechende Zeile in deinem Code deaktivierst.

Grüße aus Norddeutschland

Rudi

von Gammla N. (gammla)


Lesenswert?

Hallo!

Die gleichen Fragen habe ich mir auch schon gestellt! Ich persönlich 
habe ähnliche Erfahrungen gemacht. Bzw. habe ich ähnliche Umstände...
Auf der Seite von Fernando Heitor kann man ganz gut nachlesen, wenn das 
Problem schon mal im Forum behandelt wurde...
Auch wenn das Forum hier auf AVR spezialisiert zu sein scheint, hatte 
ich noch nie Probleme meine Fragen beantwortet zu bekommen.
Es gibt hier definitiv Leute, die fit in der PIC programmierung sind! 
Letztendlich sind die Mikrocontroller doch alle gleich... ;)

Ich persönlich kann dir noch den CCS Support empfehlen! Sehr schnelle 
und kompetente Antworten, wenn du nicht auf Kriegsfuß mit der englischen 
Sprache bist.

Weiterhin zu deinem Problem...
Ich hatte genau das Selbe! Habe for kurzem erst einen 18F4620 
programmiert. CCS und MPLAB sind der Horror. Die beiden scheinen sich 
nicht zu verstehen. Trotzdem habe ich es durchgezogen, da CCS keine 
Softwaresimulation unterstützt.

Welche Fuses kannst du denn nicht setzen?
Bzw. welche werden denn einfach wieder umgesetzt?

mfg,

Stephan

von Christian Julius (Gast)


Lesenswert?

Hallo Rudi,

ich weiss, dann wird das Feld grau. Leider ist es nur so, dass sich die 
voreingestellten Bits nach jedem Compilerlauf wieder ändern zurück auf 
Werte, die auch nicht mit #fuses eingestellt wurden. Es ist sehr 
mühselig von Hand die vielen Bits der 18er manuell zu setzen. Da scheint 
noch ein Bug im Mplab zu sein, ebenso wie die vielen Abstürze, die ab 
version 7.50 auftreten.

von Christian Julius (Gast)


Lesenswert?

@Stephan:

Hallo,

letzlich bin ich beim PIC gelandet, weil ich 1995 damit in meiner ersten 
Firma anfing. Die hatten die einmal eingeführt, es gab einen halbwegs 
stabilen Compiler dazu und dabei blieb es. Zwischenzeitlich auch mit den 
STLite gearbeitet, den 8051ern und etwas mit den Motorola 16HC... . 
Letztlich aber kann ich mit PIC alles machen, was ich brauche, 
einstecken, laufen lassen und sich freuen, zudem ich die Hardware und 
den Compiler damals gekauft habe und das nicht alles neu erwerben 
möchte, nur weil AVR wesentlich beliebter sind. 40 Pins sind zwar wenig 
aber mehr gehtr nunmal nicht auf Lochraster aufzubauen. Als 2 facher 
Familienvater und mit dem Prio 1 Hobby Autoschrauber  (Scirocco I+II bis 
zur Komplettrestauration) fehlt auch einfach die Zeit dazu. Der ARM 9 
ist noch interessant, ich will endlich richtige Betriebssssteme haben, 
wo ich eine FAT für SD zB nicht selbst schreiben muss, habe ein Board 
hier liegen aber noch nie angefasst.

Massgeblich ändert sich gern die Taktquellenbits, der Watchdog und 
einige andere, ich habe aber noch kein System dahinter gefunden. Wenn es 
Ersdatz für MPLAB gibt, wo ich meinen ICD2 Clone auch dran betreiben 
kann bin ich der Erste, der das besorgt, habe die Faxen dicke von dieser 
Oberfläche. Der CCS Support ist super, das habe ich auch schon gemerkt, 
für jeden Bug den ich finde gabs bisher immer eine Updateversion. Nur 
ist dieser Compiler immer noch recht buggy (zB funktioniert kein 
write_memory Befehl wirklich auf dem internen Flash und ich vermissen 
den Linker, den der Hightech zb hat aber den ich mir nicht leisten kann.

Gruss,
Christian

von Gammla N. (gammla)


Lesenswert?

.... hatte genau die gleichen Probleme. Bei mir wollte der fail-safe 
clock monitor nicht "an" gehen! ;)
Du hast bei deinem setzen der Fuse Bits bestimmt "#FUSES RESERVED" 
gesetzt.
Mach das mal weg und du wirst Wunder erleben!
1
#FUSES PBADEN                  //PORTB pins are configured as analog input channels on RESET
2
#FUSES RESERVED                //Used to set the reserved FUSE bits
3
  Reserved
4
#FUSES MCLR                    //Master Clear pin enabled

mfg,

Stephan

von let (Gast)


Lesenswert?

Wir verwenden in der Firma seit sechs Jahren PICs mit dem CCS.
Wir stellen jetzt aber nach und nach auf AVR / GCC um.
Der CCS ist ein einziger Krampf und bei Microchip spielen offenbar
einige Manager verrückt. Alle paar Monate werden Bausteine abgekündigt
(PIC18), die Nachfolger sind nur bedingt kompatibel und nicht gerade
beliebig verfügbar. Standardantwort unserer Distris (Sasco, Rutronik):
8-10 Wochen Lieferzeit, VPE 160Stk. Und teurer werden die Teile auch.
Ich glaube der Laden lebt mittlerweile nur noch von seinen
Bestandskunden. Zumindest sehe ich jetzt nachdem Atmel nun eine
stattliche Anzahl Controller im Programm hat keinen Grund mehr
bei Neuentwicklungen noch PICs zu verwenden. Ich beziehe mich dabei
auf die Industrie. Dem Hobby-Entwickler kann das alles egal sein.

Welche fuse bits gehen denn nicht? Den 18F4685 haben wir nicht (steckt
der nicht im LQFP64?), das Problem müßte ich aber dennoch reproduzieren
können. Wir haben so ziemlich alle CCS Versionen der 3.x und 4er
Reihe.
Ich benutze hier seit geraumer Zeit MPLab v7.40. Nicht das ich das
Programm besonders toll finde aber das es instabil ist kann ich nicht
sagen.

 - Michael

von Christian Julius (Gast)


Lesenswert?

Bei mir sieht es so aus, das Wort Reserved kenne ich nicht, ist auch 
nicht dokumentiert. Manche Flags gehen einfach nicht "an". Schaut man 
sich aber mit chipediut die Masken an stimmt da alles, bin jeden Wert 
durchgegangen kotz

Der CCS ist für sein Geld aber nicht schlecht, kommt nicht an IAR oder 
Hightech heran aber es gab bisher nichts, was ich nicht irgendwie gelöst 
bekommen habe und das alles für 99 USD. Nur vermisse ich C++ 
schmerzlich, einfach die bessere Art Programmierung mit Klassen und 
Containern, ausserdem ist es schwer mit dem CCS Module zu erstellen, 
weil er keinen Linker hat.

Ab Version 7.40 wird Mplab instabil aber 7.4 arbeitet, so glaube ich 
noch mit 8.3 Dateinanmen, daher habe ich es runtergeworfen.
1
#include "18F4685.h"
2
                                                                           #USE DELAY(clock=16000000,restart_wdt)
3
#ZERO_RAM
4
#fuses INTRC_IO,BROWNOUT,NOPROTECT,BORV43,NOPUT,NOLVP,NOWDT,WDT32768,WRT,STVREN,
5
DEBUG,EBTR,EBTRB
6
#USE RS232 (baud=9600,parity=N,bits=8,xmit=PIN_C6, rcv=PIN_C7,BRGH1OK)

von let (Gast)


Lesenswert?

So, kurze Rückmeldung: Ich habe es heute nicht mehr geschafft das
zu testen - um 20:30Uhr wollte ich dann auch mal Feierabend machen und
privat verwende ich keine PICs. Morgen ist auch noch ein Tag.

von gast (Gast)


Lesenswert?

CCS ist kein Compiler, das ist Krampf! Da kommt jede Woche mindestens 
ein Update raus, warum wohl....Schaut euch nach einem neuen um, dann 
habt ihr diese Probleme nicht mehr!

von Christian Julius (Gast)


Lesenswert?

Hallo,

es gibt Leute, die das (nicht mehr) beruflich machen, zu schlecht 
bezahlt, die auf Bezeichnungen wie "Code Affen" für die Softwerker 
keinen Bock mehr hatten und die auch keine Raubkopien gezogen haben. Die 
einfach Software kaufen und dafür soviel Geld ausgeben, wie man für ein 
Hobby ausgeben möchte. Und 2000€ (IAR, Hightech, Windriver, Green Hills 
Tools etc) sind zuviel fürs Hobby zudem dann von der "Regierung" die 
Kündigung in Form einer Scheidungsdrohung kommt weil unsere Kinder auch 
was zum kleiden brauchen ;-)

Der CCS ist für den Hobbybereich ausreichend, über 20 k Zeilen hat mein 
derzeitiges Projekt schon und es läuft ohne dass ich den Compiler 
verantwortlich machen muss, der sich seit der V1.0 schon sehr gemausert 
hat, auch wenn die Bugliste nahezu täglich erweitert wird, man schon von 
einem Bug-Change sprechen kann.

Gruss,
Christian

von let (Gast)


Lesenswert?

Die letzte CCS v3 Version die wir haben ist der 3.249. Für
den 18F4685 kann ich damit keinen Code übersetzen. Für den
18F4585 geht es aber. Die Fuse bit Einstellungen sehen gut aus.

von Christian Julius (Gast)


Lesenswert?

Hallo,

doch, Du kannst auch dafür Code erzeugen indem Du den Chip mit chipedit 
definiertst, so dass der Compiler ihn kennt. Einen ähnlichen Baustein 
nehmen, diesen kopieren und die Änderungen dann per Hand einpflegen, 
zusätzlich eine neue Header Datei erzeugen aus der alten. CAN kannste 
gleich abschalten, das Modul ist dermassen buggy, dass Microchip davon 
abrät es zu verwenden aber wer braucht auch CAN im Bastelbereich und 
wenn dann würde ich sicher nicht mit Microchip arbeiten. Bei V3.5x war 
Schluss, dann kam die neue 4.er Version, die allerdings wenig verbreitet 
ist, da sie einen effektiven Kopierschutz besitzt und sich aus dem Netz 
updated.

gruss,
Christian

von let (Gast)


Lesenswert?

Nun bin ich etwas verwirrt. Die 18F4685.h existiert und unter
'Select Device' kann ich den Baustein auch auswählen.
Beim Chipedit existiert der Controller aber nicht. Ich habe jetzt
mal den 18F4585 kopiert und als 4685 angelegt. Damit kann ich
kompilieren. Die Einstellungen für den Chip habe ich allerdings
nicht angepaßt.

Da wir den Controller nicht verwenden und auch die Compilerversion
nicht paßt (ich dachte nach dem 3.249 war schluß mit dem 3er), kann
ich dir so erstmal nicht weiterhelfen. Wir verwenden zur Zeit den
18F2520, 4525, 4620, 6525 und 6722.

Übrigens: Die 4er Reihe kannst du dir meines Erachents sparen.
Die Versionen die ich bisher getestet habe, erzeugen einen
schlechteren Code - d. h. größer und langsamer. Das finde ich
schon bemerkenswert wenn man bedenkt das CCS bei den neuen Compilern
vor allem den Optimizer verbessert haben will.

 - Michael

von let (Gast)


Lesenswert?

^ Huch, natürlich kann ich den Baustein im MPlab auswählen.
Hat der Compiler ja nichts mit zu tun. Aber der Header
war schon vorhanden.

von Stefan R. (kroko)


Lesenswert?

Hallo Christian!

Ich programmiere auch PICs mit dem CCS compiler (4er Version) und möchte 
auch die RFM12 Module ansteuern.
Hast du schon einen funktionierenden Code für das Modul?
Falls du andere Fragen hast kann ich dir vielleicht helfen.

Mfg Kroko

von MrDr (Gast)


Lesenswert?

Hallo,

Wir verwenden seit etlicher Zeit den CCS-Compiler - mit Erfolg. Ein Jahr 
lang hatten wir auch den update Service und haben dann hin und wieder 
auch mal ein Update gemacht.

Teilweise musste man nach den Updates dann seine Projekte umcodieren, da 
der Compiler mit der Zeit immer strikter wurde. Eigentlich kein 
Nachteil, allerdings hat man dann schon mal Schaum vor dem Mund, wenn 
man auf die Art und Weise zu korrekter Programmierung gezwungen wird.

Das Preis-Leistungsverhältnis!, der Funktionsumfang, die Stabilität und 
die Dokumentation ist gut.
Auch das CAN Mpdul verwenden wir, allerdings inzwischen mit etlichen 
Modifikationen...

mfg Folker

von Gast (Gast)


Lesenswert?

> CCS ist kein Compiler, das ist Krampf! Da kommt jede Woche mindestens
> ein Update raus, warum wohl....Schaut euch nach einem neuen um, dann
> habt ihr diese Probleme nicht mehr!

Ich hatte CCS schon als DOS Version ohne Syntaxhighlighting. Jetzt 
arbeiten wir in der Firma mit v3.184 und ich habe kaum Probleme, wenn 
ein Problem auftaucht dann Listing anschauen und man merkt sofort wo die 
Ursache liegt (vorausgesetzt man hat Erfahrung in asm). Ich kaufe mir 
kein Updaten mehr, die älteren Versionen sind ständig abgeflogen, ich 
habe reklamiert und dann v3.184 erhalten. Seit ca. 2 Jahren (?) nie 
abgestürzt.

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.