Forum: Mikrocontroller und Digitale Elektronik PIC Programmierung


von rausch88 (Gast)


Lesenswert?

Hi
Ich hab mir grade ein MPLAB PIC24F starter kit gekauft und wollte mal 
fragen ob einer ein gutes deutsches Tutorial für die Programmierung von 
dem Teil kennt weil ich damit irgendwie nich klar komme.
danke

von M. J. (manfred-64)


Lesenswert?

ich werf mal meine Runenstäbe.
Ahh, sie sagen mir Du stehst auf unpräzise Fragen ;)
Daher ordne ich Dich als völlig unwissenden in Sachen µC ein :P

gugst Du hier
http://www.sprut.de/electronic/pic/index.htm

von bingo (Gast)


Lesenswert?

> gugst Du hier
> http://www.sprut.de/electronic/pic/index.htm

Brille nötig ??? PIC24 ???

von bongo (Gast)


Lesenswert?

rausch88 schrieb:
> Hi
> Ich hab mir grade ein MPLAB PIC24F starter kit gekauft und wollte mal
> fragen ob einer ein gutes deutsches Tutorial für die Programmierung von
> dem Teil kennt weil ich damit irgendwie nich klar komme.
> danke

Ich hätte mir das Starterkit nicht gekauft, weil ich überhaupt keine 
PICs mag, cih programmiere mit Atmegas.

von Carsten S. (dg3ycs)


Lesenswert?

bongo schrieb:
>
> Ich hätte mir das Starterkit nicht gekauft, weil ich überhaupt keine
> PICs mag, cih programmiere mit Atmegas.

Da sage ich nur selber Schuld...

@TE
Mit deutschem Tutorial für die 24er PICS wird es leider etwas schwer.
Die Mikrocontrollerwelt spricht oberhalb der Anfängerebene einfach nur 
Englisch. Und die 16Bit Pics wie die PIC24 sind nicht gerade die 
Typischen Einsteigerprozessoren.

(Wobei ich da eh die Schwerpunkte anders legen würde. Entweder mit 
8Bittern wie den 16F oder moderner den 18F für einfache Sachen 
einsteigen oder direkt für Leistungshungrige Anwendungen auf die 
32Bitter wie PIC32 oder ARM7/Cortex-M3 setzen)

Für die 16F/18F gibt es ja genau wie für die AVR einige deutsche Tuts.
Damit können dann selbst so typen wie oben zurechtkommen.
FAlls du einsteiger bist würde ich die ersten Schritte mit diesen 
Baustenen sammeln. WEnn du mit Assembler anfangenwillst nimm 16F, Für 
Einstieg mit C 18F...
Wenn di eGrundlagen sitzen fällt auch das verstehen der Englischen Tuts 
sofort deutlich leichter - Nichts ist nerviger als wenn man neben der 
anderen Sprache auch noch mit unbekannten Begriffen in der anderen 
Sprache zu kämpfen hat.

Gruß
Carsten

von M. J. (manfred-64)


Lesenswert?

bingo schrieb:
>> gugst Du hier
>> http://www.sprut.de/electronic/pic/index.htm
>
> Brille nötig ??? PIC24 ???

dauerrausch schrieb im Beitrag #2191349:
> Du kaufst den Scheiß ohne zu wissen, wie du ihn benutzt und hältst dich
> für intelligent genug, ein Tutorial zu verstehen? Vergiss es.

Carsten Sch. schrieb:
> Für die 16F/18F gibt es ja genau wie für die AVR einige deutsche Tuts.
> Damit können dann selbst so typen wie oben zurechtkommen.
> FAlls du einsteiger bist würde ich die ersten Schritte mit diesen
> Baustenen sammeln. WEnn du mit Assembler anfangenwillst nimm 16F, Für
> Einstieg mit C 18F...

Hab's Dir doch gleich gesagt:
Manfred John schrieb:
> Daher ordne ich Dich als völlig unwissenden in Sachen µC ein :P
> gugst Du hier
> http://www.sprut.de/electronic/pic/index.htm

Besser ist das.

von ich (Gast)


Lesenswert?

bongo schrieb:
> Ich hätte mir das Starterkit nicht gekauft, weil ich überhaupt keine
> PICs mag, cih programmiere mit Atmegas.

Wen zum Henker interessiert das? Boa, ich hasse solche Leute -.-

Ich schließe mich aber Carsten an.


dauerrausch schrieb im Beitrag #2191349:
> Hier sind zwei Links, um das Teil für ein paar Cent weiterzuverkaufen:

Das würd ich allerdings nicht machen, vielleicht war es auch nur ein 
Scherz. Wenn du irgendwann die 8bitter beherrscht und die an die 
16bit/32bit trauen willst, hast du schon gleich ein PIC, den du benutzen 
kannst. Doch wie schon erwähnt, zum Einstieg lieber ein 16F oder 18F 
PIC.

von Morgenmuffel (Gast)


Lesenswert?

rausch88 schrieb:
> Hi
> Ich hab mir grade ein MPLAB PIC24F starter kit gekauft und wollte mal
> fragen ob einer ein gutes deutsches Tutorial für die Programmierung von
> dem Teil kennt weil ich damit irgendwie nich klar komme.
> danke

Hi, ich würde dir die Beispiel-Ppogramme von der Mikrochip empfehlen, 
ist zwar kein Tut aber man kann sich doch einiges Abschauen.
http://www.microchip.com/CodeExamplesByFunc.aspx

Am besten aber einfach die Reference Manuals durcharbeiten: 
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en024805

von Master S. (snowman)


Lesenswert?

naja, mit den 24er zu beginnen geht einigermassen, jedoch bei der art 
und weise der fragestellung etc. hätte ich auch erstmals mit den 18er 
begonnen (um himmels willen: wer empfielt heute noch mit den 16er zu 
beginnen!?!). nun denn, hier ein tutorial, das du auch für viele sachen 
bei den 24er brauchen kannst: http://www.pic-projekte.de/
ich empfehle dir, ein sehr einfaches, lauffähiges demoprogramm 
(blinklicht?) abzuändern anstatt von null her selbst ein programm zu 
schreiben - die configs der PIC24 haben es in sich für einen anfänger.

von ich (Gast)


Lesenswert?

Master Snowman schrieb:
> ich empfehle dir, ein sehr einfaches, lauffähiges demoprogramm
> (blinklicht?) abzuändern anstatt von null her selbst ein programm zu
> schreiben - die configs der PIC24 haben es in sich für einen anfänger.

Deshalb würde ich sagen, erstmal mit einem 8bitter anfangen. Ein paar 
Zeilen ändern kann ja fast jeder. Lieber mit Simplen Settings und 
geringer Hardware (16F) anfangen und alles von Grund auf zu 
programmieren -> zu lernen. Ich denke, solange man nicht die Uralten 16F 
nimmt, find ich kein Kriterium, dass für einen Anfänger relevant ist. 
Höhstens das Bank-Switching, da weiß ich grad nich, wie es beim 18F 
aussieht. Aber mit C jucken die Bänke auch nicht mehr, da das ja 
automatisch gewechselt wird.

Wenn die 16F's so wenig Existensberechtigung haben, warum gabs innerhalb 
vom letzten Jahr mehrere neue PICs und werden auch noch 16F's entwickelt 
(16F17xx)? Für simple Schaltaufgaben, Interfacekram reichen die doch 
völlig aus und sind billiger. Aber jeder wie er will.

von Stefan R. (stefanrau)


Lesenswert?

Hallo Rausch88,

ich versuche jetzt mal einen eher konstruktiven Beitrag zu leisten.
Ich finde es einfach für den A..... wenn hier Leute schreiben selbst 
Schuld hättest Du dir besser einen Atmel gekauft.

Ich habe auch mal mit dem PIC24 angefangen und außerhalb des 
Deutschsprachigen Raums ist der Pic sehr verbreitet. Wenn Du Probleme 
mit englisch hast, stehst Du wirklich vor einem Problem.

Hilfe Bekommst Du hier http://www.fernando-heitor.de/ das größte 
deutsche Forum.
Als Buch kann ich nur "Learn to flight the Pic24" empfehlen obwohl es in 
Englisch ist, ich glaube es ist eines der besten Bücher für Pic 24.

Zwischenzeitlich programmiere ich auch nur noch Atmel da man hier 
einfach überall deutschsprachige Unterstützung bekommt.

Viele Grüße

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

18F Pics haben dieses BANK Switching nicht mehr und im allgemeinen auch 
mehr RAM.

Aber dennoch: Es wird um die Bankumschaltung immer ein Wirbel gemacht... 
OK - daran muss man denken, aber sonderlich schwer ist es nicht. Das hat 
damals bei mir als Einsteiger keine zwei Stunden gedauert bis ich das 
kapiert hatte. Und JA- es ist eine zusätzliche Stolperfalle bei de 
rProgrammierung -neben vielen anderen die von den diversen µCs diverser 
Hersteller geboten werden. Aber wenn man das einmal weiß dann weiß man 
welche Fehler dadurch hervorgerufen werden und man hat das im Blick.

Die 16er PICs haben etwas über 30 ASM Befehle und die größeren davon 
ungefähr diese ZAhl an Special Function register. Die kleineren deutlich 
weniger. Da ist es kein Kunststück sich ebend die wenigen Befehle und 
register zu merken die ein wechsel auf Bank eins nötig machen...

Die 16F Pics habe ich aufgeführt weil die meisten davon noch sehr 
übersichtlich sind und auch die meisten Tuts noch auf diesen beruhen.
WEnn man vorhat mit Assembler anzufangen sind die wirklich nicht 
schlecht dafür. 16F628A oder 16F88 wären da mein Vorschlag.
Vom 16F84 sollte man aber schon abstand halten, der ist wirklich nicht 
mehr up to date. KAnn fast nichts und ist als Auslaufmodell sehr teuer.

Viele 18F finde ich da für einen Einsteiger schon zu 
"Funktionsüberladen" mit teilweise vierfach belegten IOs und wechselnden 
Konfigurationen usw. usf.

Bei einem Einsteiger der direkt mit C loslegen will sieht es etwas 
anders aus. Da sind die 18F schon ganz in Ordnung. Da ist man ja nicht 
mehr so nah an der HArdware und mit den 18ern kann man die möglichkeiten 
von C auch richtig ausspielen. Zudem sind die meisten interessanten 
Demos auch mitlerweile auf C und 18F Pics ausgelegt (USB, Ethernet usw.)

Ich würde einem Einsteiger der das wirklich lernen will folgendes 
Nahelegen:
Erste Schritte mit Assembler auf einem einfacheren 16F, z.B. 16F628A.
Bauvorschläge für Experimentierboards gibt es genug im Netz, kosten so 
um 5Eur. für Material.

Damit eignet man sich das Verständniss an wie das ganze überhaupt 
funktioniert, -wie so ein µC überhaupt tickt-.
Hat man das einigermaßen verstanden (ich meiner wirklich nur verstehen, 
NICHT perfekt beherrschen) und einige einfache Dinge realisiert wie 
Lauflicht, reaktion auf Tastendruck, AD Wandlung und evtl. ein einfaches 
TExt LCD angesprochen, dann Wechsel auf die 18F Serie und C.
Damit beginnt man dann die Umfangreichen Programme zu schreiben. REicht 
die Leistung der 18F irgendwann nicht mehr aus so kann man auf PIC24, 
PIC32 oder dsPIC umsteigen. Die Programmierhardware und auch die IDE ist 
ja immer die selbe! PICs in allen Varianten mit der tollsten Peripherie 
sidn fast überall günstig zu bekommen.

Natürlich kann man auch direkt mit C auf 18F einsteigen. ICh würde aber 
vermuten das man sich eine lange Zeit beim erlernen neuer Dinge immer 
wieder etwas schwerer tun wird als derjenige der die 7-14 Tage mehr für 
den Einstieg weiter unten investiert hat.

Gruß
Carsten

von usuru (Gast)


Lesenswert?

> (um himmels willen: wer empfielt heute noch mit den 16er zu beginnen!?!)

Die haben durchaus ihre Existenzberechtigung, z.B. gibt es keine 18er in 
kleinen Gehäusen, die kleinsten haben 18 Pins. Die 12er habe alle 8 
Pins, 16er gibt es ab 14 Pins.

Wer gleich mit den 18ern anfängt, dem fällt das Downsizing auf die 16er 
dann unendlich schwer, andersherum geht es viel leichter.

Da die neueren 16er einen extra Befehl für das Bankswitching haben, ist 
es zweckmässig, das über ein Macro zu machen. Ich habe das schon immer 
so gemacht:

alt:
1
bank0 macro
2
     bcf      STATUS, RP0    ; Bank 0
3
     bcf      STATUS, RP1
4
     endm
5
6
bank1 macro
7
     bsf     STATUS, RP0     ; Bank 1
8
     bcf     STATUS, RP1
9
     endm

neu:
1
bank0 macro
2
     movlb    0x00           ; Bank 0
3
     endm
4
5
bank1 macro
6
     movlb    0x01           ; Bank 1
7
     endm

im Programm dann einfach nur bank0, bank 1 etc, dann muss ich beim 
portieren von vorhandenem Code nur die Registernamen ändern und das 
Macro am Anfang (und evtl. die Bank-Nr, falls sich die geändert hat).

von Stefan R. (stefanrau)


Lesenswert?

Flowcode ist übrigens auch noch eine gangbare Lösung um mit einem Pic zu 
Arbeiten.

http://www.elektor.de/products/e-blocks/flowcode-%281-user%29/flowcode-4-for-pic-%28pro%29-programmer.7137.1770508.lynkx

Ich habe das auch mal probiert, für einfache Sachen gut, schwierig, wenn 
die Problemstellungen komplexer werden.

VG

von M. J. (manfred-64)


Lesenswert?

@usuru

neuer:
BANKSEL 'Var, SFR o Port etc.'
Der Comiler weiß wo was zu zu suchen ist (dank Prozessor includs)

von M. J. (manfred-64)


Lesenswert?

Stefan Rau schrieb:
> Flowcode ist übrigens auch noch eine gangbare Lösung um mit einem Pic zu
> Arbeiten.
>
> http://www.elektor.de/products/e-blocks/flowcode-%...
>
> Ich habe das auch mal probiert, für einfache Sachen gut, schwierig, wenn
> die Problemstellungen komplexer werden.

Teurer Spaß für 235€
und ob's wirklich Spaß mach möchte ich hier mal stark bezweifeln.

von usuru (Gast)


Lesenswert?

BANKSEL gibt es auch schon lange und ist auch nur ein Compiler-Macro. Es 
befreit einen natürlich davor, nachzudenken und nachzuschauen, auf 
welcher Bank das Register sitzt. Man muss dann aber vor jeden 
Register-Aufruf das BANKSEL-Macro setzen (auch wenn sich an der Bank gar 
nichts ändert, aber das weiss man ja nicht, weil man nicht mehr 
nachsieht) und das macht den Code letztendlich länger.

von rausch88 (Gast)


Lesenswert?

Hi
Das is schon ganz interessant aber eigendlich wollt ich jetzt nich noch 
was kaufen um da mal mit anzufangen.

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.