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 Christian, ich glaube, dort bist du, wenn es um PIC's geht, besser aufgehoben: http://www.fernando-heitor.de Beste Grüße Rudi
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
|
3 | Reserved
|
4 | #FUSES MCLR //Master Clear pin enabled
|
mfg, Stephan
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.
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) |
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
^ 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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.