www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einstieg PIC in C programmieren


Autor: Lukas Häfele (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich weiß es sind schon einige Posts zu diesem Thema.

Für ein Jugend Forscht Projekt suche ich einen passenden C Compiler.
Ich verwende den PIC 16F876 in meinem Projekt.

Hab schon mehrere Compiler ausprobiert und hab mich letztendlich
für den CCS entschieden. Doch als ich ihn kaufen wollt fand ich ihn

1. nicht mehr billig (125$ Compiler + Buch 15 $ + 40 $ Versand -> ca.
140 Euro

2. langer Lieferzeit.

Gibt es keine günstigere Studentenversion oder kann man die Ware auch
in einem anderen Shop beziehen.

Falls ihr mir einen anderen Compiler vorschlägt, dann wäre es mir
wichtig, dass es dazu auch ein passendes Buch oder Hilfestellung im
Internet angeboten wird, da ich ein absoluter Neuling in C bin.

Habe lediglich in Assembler programmiert.

mfg Lukas

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau dir mal SDCC an (http://sdcc.sf.net), steht unter der GPL, und die
sdcc-users Mailingliste ist recht hilfreich.

Buch dafür gibt es meines Wissens nicht, ein "normales" C-Buch ist
sowieso sinnvoller.

/Ernst

Autor: Lukas Häfele (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ernst,

den SDCC hab ich auch schon ausprobiert.
Wollte mir aber keine HEX-Datei erstellen.
Kann der Quelltext nur im Editor geschrieben werden, oder
gibt es da auch was übersichtlicheres?

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Liesse sich nicht der SDCC in MPLAB integrieren?

Autor: Lukas Häfele (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann könnt ich den Quelltext in MPLAB schreiben.Hier erstelle ich
dann mein C-File und der SDCC erstellt mir dann aus dieser Datei
mein HEX-File???

Stimmt das so?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenn MPLAB nicht, aber wenn das eine Möglichkeit bietet einen externen
Compiler einzubinden, sollte da auch sdcc gehen.

Ansonsten gibts sicher auch für windows eine Menge Text-Editoren mit
Syntaxhervorhebung für C. Schlimmstenfalls geht dafür auch der Visual-C
editor.

und ja, sdcc erzeugt aus deinem .c file ein .hex file, und zusätzlich
mehrere "Zwischenfiles", in denen du den ASM-Code anschauen kannst.
(Sollte man auch ab und an machen, der Optimierer greift manchmal
ziemlich daneben)

Ich nutz den SDCC mit den neueren 16bit-PICs (pic18f2550 u.ä). Wie gut
der für die 14bitter ist, kann ich nicht beurteilen.

/Ernst

Autor: Lukas Häfele (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der SDCC für den Einstieg empfehlenswert?

Wo finde ich im Internt Lektüren?

Hab den Compiler mal installiert, blicke aber nicht mehr durch.

Die mitgelieferten Handbücher helfen mir auch nicht weiter.

Wie kann ich nun aus meiner c-Datei eine hex-Datei erstellen?

mfg Lukas

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B.:
main.c file:
#include <pic16f84a.h>
void main() {
  TRISB=0xFF;
  while (1) {
    PORTB++;
  }
}

Kompilieren mit:

sdcc -mpic14 -p16f84a --opt-code-size  main.c
(Später macht da natüerlich ein Makefile Sinn)


ergibt ein main.hex file:
:020000040000FA
:0400000000000C28C8
:06000A00FF3083168600A2
:0A0010008312860A0828080005285C
:00000001FF

und ein main.asm file: (Nur ein Ausschnitt)
_main   ;Function start
; 2 exit points
;       .line   3; "main.c"     TRISB=0xFF;
        MOVLW   0xff
        BSF     STATUS,5
        MOVWF   _TRISB
00106_DS
;       .line   5; "main.c"     PORTB++;
        BCF     STATUS,5
        INCF    _PORTB,F
        GOTO    00106_DS
        RETURN
; exit point of _main


Hier sieht man übrigens auch eine Stelle, die der Optimierer besser
hätte machen können:

  BCF     STATUS,5

Wäre natürlich nicht in jedem Schleifendurchlauf nötig, würde einmal
vor der Schleife reichen.

/Ernst

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MPLAB ist ja eigentlich nur eine IDE in dem man diverse Compiler und
Assambler einbinden kann. Wie zb.: CCS, IAR, PICC usw...

Achja.. gäbe es nicht vl einen kompatiblen PIC aus der PIC18F Reihe?
Dafür gäbe es den C18.Dieser ist frei erhältlich.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AChja... beachte auch die Errata. denn im MSSP-Modul steckt ein Wurm ;-)

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist beim neuen MPLAB nicht sogar nen CCS Compiler dabei?
Ich weiß jetzt aber nicht welche PICs unterstützt werden oder
ob es irgendwelche beschränkungen gibt.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nana der PCB-Compiler von CCS ist dabei. Der ist für die die
Baseline-PICs.
Hier kannst du nachsehen welche das sind:
http://www.ccsinfo.com/devices.php?page=devices

Autor: PICer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Magic-Schnitzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lukas,
ich hatte vor wenigen Wochen auch das "tolle" Erlebnis mich mit PICs
zu beschäftigen. Da ich bisher andere Controller immer in C
programmiert habe, wollte ich natürlich auch einen C-Compiler für den
zu verwendenden PIC. Leider (ich muss) verwende ich einen sehr kleinen
PIC (12F683), so dass der CCS Compiler ausfiel.
Bei der Suche nach Alternativen fand ich den CC5X Compiler.
Ich arbeite seitdem mit MPLAB und der CC5X Compiler lässt sich sehr
einfach integrieren. Dies heißt nun, dass ich in dieser
Entwicklungsumgebung mein C-Quellcode erstelle, diesen auch in C
debuggen kann und direkt meine Zielapllikation programmieren kann.
Mit einem kleinen Trick kannst du auch größeren Quellcode erzeugen (ist
in Freeware auf 1kB hex-file beschränkt).
Eine ausführliche Anleitung zum Compiler mit dem "C-Befehlssatz"
(kein ANSI C) ist als PDF verfügbar.

Ich hoffe ich konnte dir helfen und wünsch dir viel Spass beim (Jugend)
forschen.

Autor: Lukas Häfele (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Danke erstmals für die zahlreichen Antworten.

Ich werde den MikroC Compiler einsetzen.

Es ist ein Demo mit einer 2K Beschränkung.

Konnte sonst keine weiteren Einschränkungen feststellen.

Die 2K werden aber mehr als gut für mein Projekt ausreichen.

mfg Lukas

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab vor einiger Zeit mal was an nem PIC16f877 gemacht und hatte da
den PICC Compiler mit MPLAB. Das ging recht gut. Wende dich doch mal
direkt an die Hersteller. Die sind, wenn es um studentische Arbeit oder
auch so was wie "Jugend Forscht" geht, nach meiner Erfahrung sehr
großzügig.

Autor: Magic-Schnitzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lukas,
ich möchte dir die MikroC IDE nicht ausreden aber einfach mal meine
Meinung dazu abgeben. Bevor ich den CC5X Compiler mit MPLAB IDE
benutzte (siehe obiges posting), stieß ich auch auf die MikroC IDE.
Jedoch hatte ich einige Probleme mit der IDE an sich, mit dem
(dürftigen) Debugger und das Programmieren (der Zielapllikation)
funktionierte auch nur über ein externes Programm.
Deshalb bin ich bei MPLAB mit CC5X compiler gelandet und bin zufrieden.
Die Vorteile dieser Kombination hatte ich oben schon aufgeführt.
Trotzdem viel Erfolg

Autor: Tom Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Lukas,
Den CC5X Compiler nutze ich auch( in MPLAB). Kann ich Dir nur
empfehlen. Einige Hilfestellungen findest Du auf www.cc5x.de.
Ob der Compiler deinen PIC unterstützt, erfährst Du, indem Du nach
einem passenden Headerfile für deinen PIC im Headerordner suchst.
Bei einem 16Fxxx sollte es da eigentlich keine Probleme geben.

Autor: Achim Gayer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas,

der CC5X Compiler hat auch mir bereits mehrfach gute Dienste
geleistet.
Produziert stabilen Code. Hatte den 16F877 eingesetzt.
Der MicroC ist noch ziemlich neu. Von den Jungs habe ich mal
das EasyPic Board gekauft. Das ist gut. Aber jetzt machen die wohl in
IDE Software. Da werden sich sicherlich noch ein paar Bugs finden.

Autor: pjtec (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich hab auch mit dem CC5X angefangen und finde ihn nach wie vor den 
besten Compiler. Auch die Integrierung in Editoren (Visual Studio, 
MPLAB) ist ziemlich einfach.
Der Vorteil des mikroC ist die wirklich umfangreiche 
Bibliothekensammlung, allerdings lässt die Handhabung und das Design der 
Entwicklungsumgebung zu wünschen übrig. Da sind die noch Jahre hinten.
Wenn ich einen Compiler kaufen würde, dann den CC5X (bin bisher mit dem 
Free-Editions ausgekommen und versuche mich jetzt mal mit AVR-GCC).
Grüße,

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.