Hallo zusammen, nachdem ich nun eine Zeit lang mit dem Atmega8 von Atmel in C programmiert habe, will ich nun auf einen PIC 16F887 von Microchip umsteigen. Dies liegt vorallem daran, dass ich Anfang nächsten Jahres ein Abschlussprojekt mit dem PIC 16F887 erstellen muss und die Programmiererfahrung mit dem Atmel dort weniger bringt. Nun zu meinen Fragen/Bedenken... Wenn ich das "PICKIT 3" (~ISP-Programmer bei Atmel-µc) und einen PIC 16F887 (+ entsprechende Peripherie) habe, kann ich diesen µc dann mit Hilfe von "MPLAB X IDE" in Assembler UND C programmieren? In einem Tutorial habe ich nämlich gelesen, dass die PIC 16er ungeeignet für die C-Programmierung seien. Ich MUSS aber mit dem PIC 16f... programmieren und würde es am liebsten in beiden Sprachen tun. Nun noch ein Bedenken bezüglich "MPLAB X IDE"... Es werden anscheinend kostenlose und kostenpflichtige Versionen von Microchip angeboten. Kann man mit der Freeware trotzdem, bis auf den Verzicht einiger zusätzlicher Funktionen, uneingeschränkt programmieren? Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte. Gruß
Iron Maiden schrieb: > Kann > man mit der Freeware trotzdem, bis auf den Verzicht einiger zusätzlicher > Funktionen, uneingeschränkt programmieren? Die Einschränkung liegt nur in der Einstellung der Compiler-Optimierung. Wenn Du nicht das letzte Byte aus dem Code herausquetschen mußt wirst Du die Einschränkung nicht bemerken. Gruß Anja
Weil sich der 16F887 ganz verdächtig nach IHK Abschlussprüfung zum Elektroniker für Geräte und Systeme anhört: Ich und meine beiden Kollegen haben vor kurzem erste unsere Ausbildung abgeschlossen und alle drei für unsere Abschlussprojekte einen ATmega32 verwendet. Nur weil man PIC in der Schule lernt und der in den Prüfungen drankommt, musst du den (bzw. wir zumindest) nicht im Abschlussprojekt verwenden. Ich und einer der beiden anderen haben sogar 100% bekommen ;-) Und im übrigen finde ich das Programmieren des 16F887 in C wirklich einen rechten Krampf, desshalb haben wir uns alle für AVR entschieden (auch wenn die anderen beiden und unser Ausbilder den vorher nicht kannten, aber es lief alles erstaunlich reibungslos) Gruß
Iron Maiden schrieb: > Wenn ich das "PICKIT 3" (~ISP-Programmer bei Atmel-µc) und einen PIC > 16F887 (+ entsprechende Peripherie) habe, kann ich diesen µc dann mit > Hilfe von "MPLAB X IDE" in Assembler UND C programmieren? In einem > Tutorial habe ich nämlich gelesen, dass die PIC 16er ungeeignet für die > C-Programmierung seien. Ich MUSS aber mit dem PIC 16f... programmieren > und würde es am liebsten in beiden Sprachen tun. Das MPLAB X ist wirklich nur die IDE, da ist kein Compiler dabei. Den passenden Compiler für Deine Architektur (PIC16/PIC18, PIC24/dsPIC, PIC32) musst Du anschließend dazu installieren. Das ist ein extra Download. Nicht dass Du Dich wunderst. fchk
Sofern der C Compiler den µC unterstützt, merkt man bei der Programmierung nicht viel davon wie gut der PIC16 für C geeignet ist. Nur die Laufzeit und der Speicherbedarf sind ggf. größer als erwartet. Die etwas umständliche Speicherarchitektur merkt man vor allem wenn man auf ASM ausweicht. Bei einigen der PICs hat man ggf. noch ein Problem mit der Stackgröße, was ggf. die Interrupts und Schachtelungstiefe einschränkt. Für kleine Aufgaben sollte es aber reichen.
Ulrich schrieb: > merkt man bei der > Programmierung nicht viel davon wie gut der PIC16 für C geeignet ist. Die PICs machen es dem Compiler aber oft nicht leicht. Bei einigen PICs ist der SRAM nicht am Stück. D.h. auch wenn er 2048 Byte SRAM hat, kann der Compiler bei größeren Arrays (z.B. 200 Byte) das Handtuch werfen.
Hallo, ich entwickle selbst in ASM und C Software für ein System mit PIC16F887. Gerade wenn man etwas in ASM programmiert, ist das mit den Banking und Pageing etwas gewöhnungsbedürftig, aber auch keine große Herausforderung. Der C-Compiler ist soweit ich das beurteilen kann in der neuesten Version 1.20 (XC8) fehlerfrei. Es gibt zwar noch Bugs, allerdings tauchen diese nur in höchst speziellen Fällen auf, von dem was ich bis jetzt gesehen habe. Dies hätte ich vorher nicht unterschrieben! Mit der neuen Version ist auch die Qualität des Compilats in der free Version verbessert worden. So wurde der Code früher auch künstlich größer gemacht ... Wie der Vorposter schon erwähnt sind große Arrays ohne Klimzüge nicht möglich, da sich der Speicher grob jeweils viertelt. Zu MPLAB X kann ich auch nur empfehlen wirklich die neueste Version 1.85 zu nutzen. Muss sagen das mir die IDE inzwischen sehr gut gefällt! Nachdem Sie einen lange durch z.B. anzeigen falscher Werte beim Debuggen, Abstürze und Anzeige von falschen Kommentaren zu den Variablen den Verstand gekostet hat. Letzter Tipp, vor dem loslegen schauen welche Resourcen Ram/Rom vom Debugger genutzt werden. Rom z.B. 256 Byte auf Page3 wenn ich mich recht erinnere. Aber sowas sieh man ja bei der C-Programmierung nicht daher bin gerade nicht ganz sicher. Ansonsten findet man dies leicht über die Startpage der IDE.
Ergänzungen: Programmierung unter ASM 1. Der C-Compiler kennt eine etwas andere Assembler Syntax als der ASM-Compiler. Solltest du also mischen wollen dies beachten! Insbesondere Variablendeklaration 2. C-Compiler Assembler kennt die "Spezial-Befehle" nicht, ich habe hierfür teilweise Makros geschrieben, welche ich bei Bedarf bereitstellen könnte. Würde aber versuchen ersteinmal darauf zu verzichten. 3. kostenlos/kostenpflichtig der C-Compiler kann für 1 oder 2 Monate mit allen Optimierungsfeatures genutzt werden. Solltest du ihn wirklich für ein Projekt brauchen, aktiviere erteinmal nicht die PRO-evalphase und teste ohne Optimierungen. Wenn das Projekt dann gegen Ende läuft Pro Mode aktivieren und sich über zusätzliche Geschwindigkeit und wieder freien Speicher freuen. 4. Ich ziehe auch AVR, AVR-32, CortexM, RX und RL dem PIC von der Architektur vor, allerdings sind die PIC µC halt doch manchmal die günstigste Variante bei entsprechend benötigter Peripherie ... wobei letztere interessanter ist als bei den AVRs z.B.
ASM-Compiler natürlich blödsinn ... vielleicht doch gestern zu lang weg gewesen und zu früh aufgestanden ;)
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.