Forum: Mikrocontroller und Digitale Elektronik C-Tutorial für PIC


von detlev (Gast)


Lesenswert?

Hallo,

ich habe bisher PIC nur mit Assembler programmiert und möchte jetzt auf 
C umsteigen. Kann mir jemand ein gutes Buch oder ein leicht 
verständliches Tutorial empfehlen (Einlesen/Ausgeben von Daten, PWM, 
I²C, Arithmetik usw.)?? Danke

von Sergey (Gast)


Lesenswert?

Hallo,

es gab da ein Tutorial zu CC5x... doch ich rate dir ab, auf
PIC16xxxx Bausteinen alles ausser einfachste Aufgaben mit C zu
realisieren.

Wenn du C nutzen willst, nimm lieber einen PIC18Fxxxx, die kosten
mitterweile genausoviel wie die PIC16xxxx und können viel mehr.

Du kannst z.b. MikroC nehmen, das ist sehr einfach für den
Einstieg und hat auch bereits viele eingebaute Librarys, wenn
auch mit einigen Einschränkungen auf den kleinen PIC16Fxxxx
(z.b. kein sprintf) weswegen ich dir auch abrate, diese zu
verwenden.

Für MikroC brauchst du ansich kein Tutorial, da gibts reichlich
Beispiele dabei und auch eine gute Hilfe. Bei MikroC musst du
nichtmal eine Library einbinden, auch das macht der Compiler
automatisch.

Für LCD-Displays, PWM, Delays, Piepser, Tastaturen, I2C (inkl.
Software-I2C), UART (inkl. Software-UART) und sogar USB etc..
gibts bereits fix fertige Library Funktionen.

Ein Nachteil ist, dass die Demo-Version glaube ich eine
Codesize-Limitierung hat, ausserdem ist er nicht ganz ANSI-
kompatibel so wie viele ARM Compiler, z.b. hat gab es massive
Probleme beim Einbinden einer SHA1-Library aus der Unix-Welt,
das geht nicht ohne massives Umschreiben.

Du kannst natürlich auch Microchips Compiler nehmen, doch ich
finde MikroC zum schnellen realisieren von Ideen wesentlich
einfacher und umfangreicher wegen der massiven Librarys.

von mr. mo (Gast)


Lesenswert?


von Carsten S. (dg3ycs)


Lesenswert?

Sergey schrieb:
> Hallo,
>
> es gab da ein Tutorial zu CC5x... doch ich rate dir ab, auf
> PIC16xxxx Bausteinen alles ausser einfachste Aufgaben mit C zu
> realisieren.
>
> Wenn du C nutzen willst, nimm lieber einen PIC18Fxxxx, die kosten
> mitterweile genausoviel wie die PIC16xxxx und können viel mehr.

Also da kann ich zustimmen. Wenn man vor hat als Einsteiger in C zu 
schreiben kann gleich auf die 18F zurückgreifen. Wobei die 16F Typen 
natrlich auch funktionieren - bei den 6/8 Poligen Bausteinen gibt es zum 
beispiel glaube ich auch keine mit 18F Kern, aber wenn man die Wahl hat 
sind die 18F Typen besser: Schneller, Größerer Speciher, mehr Peripherie 
zum selben Preis! (Ich nehme fast grundsätzlich 16F wenn ich in ASM 
schreibe und 18F für C)

Sergey schrieb:
> Du kannst natürlich auch Microchips Compiler nehmen, doch ich
> finde MikroC zum schnellen realisieren von Ideen wesentlich
> einfacher und umfangreicher wegen der massiven Librarys.

Gerade wegen den Libarys würde ich den C Compiler von Microchip nehmen.
Direkt beim Download hat der nicht so viele dabei, aber es gibt eine 
ganze Menge bei Microchip auf der Website die man sich nachladen kann.
http://www.microchip.com/SoftwareLib.aspx
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2896

Der noch gewichtigere Grund sind aber die Frameworks für USB &Co., der 
TCP-IP Stack usw. die alle auf den Microchip Compiler angepasst sind und 
es ermöglichen mit wenig Aufwand auch als Anfänger schon nach einem 
NAchmittag erfolge zu haben.

Wegen den Beispielen:
Es gibt auf der Microchip Homepage eine Menge beispiele:
http://www.microchip.com/TechDoc.aspx?type=CodeExamples

Allerdings würde ich als erstes mal mir die Starterkits auf der Homepage 
raussuchen - zu allen SKs sind die Downloads verfügbar!- Diese kannst du 
dir einfach runterladen. Bei vielen Starterkits sind gut dokumentierte 
Lernbeipiele dabei die einen einfachen Einstig ermöglichen.
Wenn die HArdware des Starterkists nicht zu kompliziert ist kanns du dir 
die Testumgebung für die Lernbeispiele ja einfach aud Lochraster 
nachbauen - Alle Schaltpläne sind in den Dokus ja drin.
So kann man auch ohne ein SK zu kaufen die SK Lektionen nacharbeiten.

Gruß
Carsten

von Carsten S. (dg3ycs)


Lesenswert?

NAchtrag:
Hier noch ein Link direkt zu den Dateien eines der einfachsten 
Starterkits. Hier sind auch Ausdrücklich "Lesson Files" genannt.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en538340

Gruß
Carsten

von detlev (Gast)


Lesenswert?

Danke erstmal! Ich habe mir vor längerem ein Development-Board mit 
PIC18Fxxx und PICkit2 zugelegt.
Wo liegt eigentlich der große Unterschied zwischen PICkit2 und ICD2 
(beim debuggen??)

von Lehrmann M. (ubimbo)


Lesenswert?

detlev schrieb:
> ich habe bisher PIC nur mit Assembler programmiert und möchte jetzt auf
> C umsteigen.

Wenn du Assembler gemacht hast dann kennst du sicherlich sprut.de
Ich hatte mir vorher ein normales C Buch geschnappt und hab C gemacht.
http://openbook.galileocomputing.de/c_von_a_bis_z/

Hier eine Einführung für Leute die C ein bisschen beherrschen.
http://www.sprut.de/electronic/pic/c/c.html
http://www.sprut.de/electronic/pic/c/c18/c18.html
http://www.sprut.de/electronic/pic/c/pic_c/pic_c00.html

Im Grunde genommen ist es kein großer Unterschied. Man muss C 
beherrschen. Damit kann man die gesamte Arithmetik + Kontrollstrukuren 
übernehmen. Der Rest besteht auch nur darin (genau wie in Assembler) 
Register zu beschreiben und zu lesen.
Wenn du schon asm gemacht hast, dann beherrschst du ja die Hardware 
vollkommen. Dann musst du nur noch C lernen.
MikroC ist ein rel. einfacher für Anfänger geeigneter Compiler. 
Ansonsten geht's auch wie oben gelinkt mit dem C18 Compiler von 
Microchip.

von Sammy (Gast)


Lesenswert?


von Erich (Gast)


Lesenswert?

Naja, das http://pic-projekte.de/wiki/index.php?title=PIC_C_Tutorial
ist zwar nett, aber ohne konkrete reale Beispiele bringt's nicht soviel.

Besser oder ergänzend daher dies hier (englisch können wir ja alle)

1.)
http://www.gooligum.com.au/tut_baseline_C.html

2.)
pickit 3 debug express lessons
( Microchip 41370C.pdf )
Die .zip Datei der lessons findet man bei GOOGLE über Suche:
  "Software code for PICkit 3 Debug Express Lesson Files"
Vgl. Beitrag "Re: PIC Programmiereinstieg"

Gruss

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
Noch kein Account? Hier anmelden.