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.