Forum: Mikrocontroller und Digitale Elektronik PIC18F Frage


von newbie (Gast)


Lesenswert?

Nabend. Ich möchte mich in die PIC18F einarbeiten (bin Anfànger). Im 
Datenblatt sind nur Assemblerbefehle zu finden, wo finde ich eine Doku 
die erklàrt wie ich den PIC18 in C (nutze C18) programmieren kann? Am 
besten von Microchip. Idealerweise beschränkt sich die doku nicht nur 
auf Pic18, aber für den Anfang würde das schon reichen.

von Max H. (hartl192)


Lesenswert?

Von Microchip hab ich das hier gefunden: 
http://ww1.microchip.com/downloads/en/DeviceDoc/51295E.pdf
Mir haben als ich angefangen habe die Tutorials auf dieser Seite sehr 
weitergeholfen: http://pic-projekte.de

Sind C-Grundkenntnisse bereits vorhanden?

newbie schrieb:
> idealerweise beschränkt sich die doku nicht nur auf Pic18
Soweit ich weiß unterstützt der C18 ausschließlich PIC18

: Bearbeitet durch User
von Toxic (Gast)


Lesenswert?

PICmicro MCU C®
An introduction to programming
The Microchip PIC in CCS C
By Nigel Gardner

http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fir.nmu.org.ua%2Fbitstream%2Fhandle%2F123456789%2F110776%2F2adbe2fcfcc9b3fd758f3fac7bde709a.pdf%3Fsequence%3D1&ei=n4yMVem3O-Gy7QaY8p9I&usg=AFQjCNFve6M-jbC3u5JwZWi6BXGDLOt9-g&bvm=bv.96782255,d.ZGU&cad=rja
=========================================
Hier gibt es schoene Beginner-Lernprogramme mit Erklaerungen(siehe 
Chapter 3 und Chapter 4 in den pdf-Dateien)
Ich empfehle Dir allerdings mit MPLAB-XC8 zu arbeiten.C18 wird nicht 
mehr weiterentwickelt,dennoch tragen die Uebungsbeispiele sehr schoen 
zum Verstaendnis der PicController bei.
Microchip;
http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fwww.cis.upenn.edu%2F~lee%2F06cse480%2Fdata%2FMPLAB_C18_Getting_Started_51295f.pdf&ei=c4-MVZXtOKKX7QbuqpbIBQ&usg=AFQjCNHgelpCY4_MPG6UgxrLC-S6sdRteg&bvm=bv.96782255,d.ZGU&cad=rja

http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F51295E.pdf&ei=24-MVYLICabV7gb696_ICQ&usg=AFQjCNFMAtjw5ygu91hnoSS5yf4gUWYM-Q&bvm=bv.96782255,d.ZGU&cad=rja
=========================================
MPLAB XC8 (hab ich nur ergoogelt - nicht "getestet"
http://pic-projekte.de/wordpress/?p=133

=========================================
Solltest Du bei C18 bleiben wollen brauchst Du irgendwann auch das 
C18C-UserGuide.
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCAQFjAB&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F51288c.pdf&ei=J5SMVbPIJOPg7Qa_zo3ABQ&usg=AFQjCNFJyHmYQFBOjX65rYNor7fEM2Hdiw&bvm=bv.96782255,d.ZGU&cad=rja

von newbie (Gast)


Lesenswert?

C Grundkenntnisse sind vorhanden, danke für die vielen Links. Ich werde 
mir wohl auch die Compiler Dokus ansehen müssen.

von Snowman (Gast)


Lesenswert?

Hallo

Beginne nicht mit C18!! verwende das neue MPLABX mit dem XC8 (ist beides 
kostenlos von Microchip). C18 wird nicht mehr supportet.

von newbie (Gast)


Lesenswert?

Naja die Compiler Doku mit knapp 600 Seiten schreckt mich aber schon ab, 
da ist die C18 mit 120 Seiten wesentlich ansprechender...

von Max H. (hartl192)


Lesenswert?

Das du C eh schon kannst musst du nur noch die PIC spezifischen Sachen 
lernen:
- Configs
- Wie man ein Register beschreibt
- Wie man die ISR schreibt...

Der Rest ist mMn fast nur noch zu Wissen was man in die Register 
schreiben muss, das wird man aber nicht in der Compiler Doku sondern im 
Datenblatt des uCs finden.

: Bearbeitet durch User
von Little B. (lil-b)


Lesenswert?

Max H. schrieb:
> Das du C eh schon kannst musst du nur noch die PIC spezifischen Sachen
> lernen:
> - Configs
> - Wie man ein Register beschreibt
> - Wie man die ISR schreibt.

Ich stimme zu. Das sind die einzigen drei Dinge, die du über PIC18 in C 
wissen musst. Und diese sind recht schnell zusammen gefasst:
- Configs: kann man im Memory View einstellen und den ensprechenden Code 
generieren lassen.
- Register: Includiere den <xc.h> header und weise zu wie normale 
Variablen
- ISR: verwende das Keyword "interrupt" in der Funktionsdefinition

Das alles setzt natürlich voraus, dass du MplabX und XC8 verwendest.

Die Beispiele im Datenblatt sind nur zum verdeutlichen der Funktion. 
Wenn man etwas von Assembler versteht, kann man diese auch mit 
leichtigkeit nach C übersetzen.

von newbie (Gast)


Lesenswert?

Little B. schrieb:
> Wenn man etwas von Assembler versteht, kann man diese auch mit
> leichtigkeit nach C übersetzen.

Na dann hoffe ich, dass ich damit klar komme, denn mit Assembler habe 
ich noch nichts groß zu tun gehabt.

von Little B. (lil-b)


Lesenswert?

newbie schrieb:
> Little B. schrieb:
>> Wenn man etwas von Assembler versteht, kann man diese auch mit
>> leichtigkeit nach C übersetzen.
>
> Na dann hoffe ich, dass ich damit klar komme, denn mit Assembler habe
> ich noch nichts groß zu tun gehabt.

Dann lege ich dir das Kapitel "Instruction Set Summary" des 
PIC18-Datenblattes ans Herz. Das ist nicht gar so umfangreich und ein 
gutes Nachschlagewerk, wenn man die Befehle nicht kennt.

von newbie (Gast)


Lesenswert?

Das Instruction Set werde ich mir ansehen, danke für den Hinweis.

Ich habe mir das PicKit3 Debug Express Starterkit bestellt, dort sind C 
Lessons zu Timer, PWM, EEPROMusw. enthalten. Ich denke damit fahre ich 
erstmal ganz gut. Hoffentlich bin ich dann auch in der Lage auf andere 
Pic typen umzusteigen, oder ich lerne halt doch zusätzlich Assembler :-)

von Max H. (hartl192)


Lesenswert?

newbie schrieb:
> Hoffentlich bin ich dann auch in der Lage auf andere
> Pic typen umzusteigen
Bei Umstieg auf einen anderen PIC18 sehe ich überhaupt kein Problem. Ich 
hatte auch keine gro0en Probleme, als ich mit PIC24 (auch C) angefangen 
habe.

von Toxic (Gast)


Lesenswert?

newbie schrieb:
> Hoffentlich bin ich dann auch in der Lage auf andere
> Pic typen umzusteigen, oder ich lerne halt doch zusätzlich Assembler :-)

Ich wuerde Dir aufjedenfall anraten auch mal kleinere Programme in 
Assembler zu schreiben.Desweiteren schaff Dir auch gleich mal 2-3 
8-beinige Pics z.B.: Pic12F1840 und 18-beinige Pic16F1827 an.Am Anfang 
ist es selten, dass man 10000 I/O-Ports braucht......
Beide Typen sind guenstig bei Reichelt zu bekommen.

Als 18F-Typen empfehle ich Dir den Pic18F2550 (auch Reichelt)
Wenn Du mal genuegend Erfahrung hast kannst Du den Pic18F2550 mit einem 
Bootloader versehen.Wie das geht und was es damit auf sich hat siehe
http://sprut.de/
http://sprut.de/electronic/pic/c/c18/c18.html
http://sprut.de/electronic/soft/usboot/usboot.htm

Happy programming.....

von newbie (Gast)


Lesenswert?

Spruts HP ist wirklich ne tolle Seite, ich denke ich werde die Seite 
durcharbeiten, sicher trägt das zum verständnis bei wenn ich mich auch 
mit Assembler beschäftige. Danke euch allen für die Hilfe.

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.