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
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
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
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
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.
@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
.... 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
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
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.
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.
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!
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
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.
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
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
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
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
> 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.