Forum: Mikrocontroller und Digitale Elektronik Pic Programmierung


von Andre V. (Firma: Andres-Teilelädle) (vuman1)


Lesenswert?

Guten Abend zusammen, ich bin neu hier und heiße Andre.
Ich möchte mich mal in die Pic Programmierung heranwagen und versuche 
mich gerade an einem PIC 16F876A.Ich habe mir das Buch von Franzis 
gekauft was auch sehr gut beschreibt wie der PIC aufgebaut ist.
Mein Problem ist jetzt aber da die Programmierung komplettes Neuland ist 
eine einfache Abfrage eines eingangs RA1 und den Ausgang Ausgang RB 1 
einfach einzuschalten als Tastfunktion ohne Selbsthaltung.
Ein bisschen hab ich schon versucht zu Programmieren aber ich glaube das 
ist grottenfalsch.
Wenn jemand Zeit und Lust hat mir ein bisschen mitzuhelfen wäre ich 
dankbar.
Grüße Andre.

von yxz (Gast)


Lesenswert?

In welcher Programmiersprache denn ?

von PIC (Gast)


Lesenswert?

Hallo,
schön das du es mit einem PIC probieren möchtest.
Ich Empfehle dir mal folgende Seite:
www.sprut.de
Hier findust du erst mal alles was du wissen möchtest, wenn du
in ASM mit MPLAB arbeiten möchtest.

Wenn du dann Fragen hast, melde dich hier.

PIC

von Master S. (snowman)


Lesenswert?

tja, die PICs der 16er-reihe sind und bleiben (leider) am leben.. sie 
werden hier oft von den Atmel-fanboys als referenz der PICs genommen, 
obwohl diese PICs massivst veraltet sind (sehr viele alte bücher 
behandeln diese..). ich als PIC-user kann die 16er absolut nicht 
empfehlen, besonders nicht für den einstig!
ASM (assembler programmierung) ist gut bis und mit 20 zeilen. wenn du 
kleine erfolge haben willst, kommst du mit C schneller ans ziel. von 
Microchip gibt's MPLAB und den C18 (C-compiler) kostenlos. später, wenn 
du mikrokontroller gut beherrschst, kannst du immer noch assembler 
lernen und/oder auf die schnelleren (und leicht komplizierteren) PICs 
der 24er-reihe umsteigen.

www.sprut.de ist genial um die peripherien der PICs kennen zu lernen - 
es gibt fast keine unterschiede zwischen den bei sprut beschriebenen 
16ern und den 18ern.

mein fazit: sprut nachschlagen um die PICs zu verstehen und 18er-PICs 
nehmen um zu programmieren. ps: ich selbst hatte null vorkenntnisse in 
mikorkontroller und bin mit C extrem schnell erfolgreich geworden. 
damals gab's leider nur die 16er-PICs und limitierte freie C-compiler. 
doch auch damit im alleingang (nichtmal foren-untestützung) kam ich in 
sehr kurzer zeit zum ziel. heute rate ich jedem neuling zu den 18er. wer 
schon erfahrung mit mikrokontroller hat, kann auch mit den 24er beginnen 
(die sind wirklich einfach genial, aber wegen der komplexität und 
konfirgurationsmöglichkeiten meiner meinung nach nicht so gut geeignet 
wie die 18er um in der materie die ersten schritte zu machen). -> nimm 
einen 18er-PIC und du wirst es nich bereuen.

hast du schon einen brenner? falls nicht, kauf dir in eBay einen PikCit3 
oder wenn du etwas mehr ausgeben möchtest einen ICD3.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Hey Snowman,
du scheinst ja schon mal was mit PIC24 gemacht zu haben. Ich möchte mich 
da auch mal drin einarbeiten. Kennst du eine Tutorial-Seite, die PIC24 & 
C30-Compiler behandelt?

Gruß,
Alex

von Michael S. (rbs_phoenix)


Lesenswert?

Master Snowman schrieb:
> obwohl diese PICs massivst veraltet sind

Also ich habe mir vor ein paar Monaten die grad neu auf den Markt 
gekommenen PIC16F1937 bestellt und bin zufrieden. Und der PIC16F1527 
wird noch entwickelt und ist somit, wenn er rauskommt, auch nicht grade 
alt. Oder war das auf den PIC16F876A bezogen.



Master Snowman schrieb:
> wer
> schon erfahrung mit mikrokontroller hat, kann auch mit den 24er beginnen

Ich dachte, die 24er Reihe währe Anwendungsgebundener, für z.B. 
Grafik-Display-Ansteuerung oder Kommunikation, sowie die dsPICs für 
Regelungen etc, wegen besseren Berechnungsmöglichkeiten. Oder bin ich da 
auf dem Holzweg?


Als Brenner, falls Parallelport vohanden, kann ich auch zum 
Sprut-Brenner raten. Habe die 8er Version mir gebaut und funktioniert 
alles einwandtfrei. Allerdings brauchst du dafür einen beschriebenen 
PIC18F4550 glaube, für die USB unterstützung. Kann den aber auch brennen 
und dir schicken (Bei interesse kannst du mir ja ne Nachricht 
schreiben).


MFG RBS_Phoenix

von Christl (Gast)


Lesenswert?

Pic16 ist von seiner Architektur "veraltet" unabhängig davon ob noch 
neue Derivate auf dem Markt kommen.

Pic24, dsPic und auch Pic32 sind natürlich nicht anwendungsgebunden, sie 
können wie "normale" µC genutzt und eingesetzt werden. Sie sind halt für 
bestimmte Aufgaben besser geeignet dies schränkt sie aber nicht für 
allgemeine Dinge wie LED zum leuchten bringen bzw. Tasterabfrage ein !

von Master S. (snowman)


Lesenswert?

@Christl: genau so ist es. die PIC16 werden zwar nachwievor hergestellt 
(z.t. auch neue derivate auf den markt gebracht) jedoch vermutlich nur 
wegen den alten hasen, die noch nicht mitgekriegt haben, dass es 
besseres gibt. die archidektur (bank switching etc.) ist echt übel. die 
PIC18 haben auch ein paar konstruktionsbedingte nachteile (wie jeder 
mikrokontroller sie hat) sind aber sehr gut zu gebrauchen und vor allem 
für den einstieg bestens geeignet.

PIC24 etc. sind schnelle und moderne mikrokontroller, wobei die einen 
zusätzliche features haben, wofür sie sich dann noch besser eignen als 
universal-mikrokontroller (DSP, USB, CRC, DMA, CTMU etc.) sie können 
aber auch ohne diese spezial-features verwendet werden ;-) die PIC24 
sind günstig und bieten sehr viel (geschwindigkeit, RAM, ROM, peripherie 
etc.)
PIC30/33 sind teuer aber wenn man halt DSP etc. braucht...
PIC32 ist eine ganz andere kategorie

"leider" habe ich noch diverse 18er-PICs zu hause rumliegen, und die 
möchte ich zuerst verbrauchen bevor ich neue 24er kaufe. ich habe mir 
aber zu hause ein 24er-demoboard gebaut und konnte schon rumspielen und 
bin begeistert, was die 24er alles drin haben :-)))) somit habe ich noch 
nicht viel erfahrung, aber der umstieg von den 18ern zu den 24ern ist 
problemlos.
gute seiten für die 24er:
http://www.flyingpic24.com/
http://www.engscope.com/pic24-tutorial/

von Michael S. (rbs_phoenix)


Lesenswert?

hat das eigentlich einen Grund, warum die PIC24 und die dsPICs keinen 
EEPROM haben? Ich meine da is soviel drin, da hätte das doch auch noch 
gepasst..

Aber werde jetzt auch wohl umsteigen auf mindestens PIC18. Fand bloß die 
PIC16F Reihe so cool, weil die echt simpel sind und ich die in der 
Ausbildung gelernt habe. Ansich reichen die ja auch für kleinere 
Programme massig aus. Allerdings will ich keine µCs wegschmeißen bzw. 
einstauben lassen. Habe noch einige 16Fs

von Master S. (snowman)


Lesenswert?

EEPROM: ich glaube mal gelesen zu haben, dass bei der 
fertigung/herstellung der 3.3V-PICs dies nicht mehr möglich ist oder zu 
teuer geworden wäre. ich finde es auch schade, denn ich brauche 
eigentlich fast immer EEPROM. aber man kann ja für seltene 
schreibzugriffe auch das ROM gebrauchen.

ich habe auch noch je 2 PIC16C56A und PIC16F877A rumliegen... abholung 
in der CH oder gegen rückfrankierter briefumschlag gratis abzugeben. hat 
jemand interesse?

von Christl (Gast)


Lesenswert?

Lt. div. Gerüchten (u.a. seitens Microchip!) sollen demnächst dsPic´s 
mit "echtem" internen Eeprom auf den Markt kommen.

Die Eeprom-Emulation (Appl.-Note) ist halt ein Krampf !!! Microchip hat 
nun endlich ein einsehen, was der Anwender wirklich haben will.

von Chris (Gast)


Lesenswert?

Die 16F können noch 5V, hingegen die 18F nicht mehr. Das ist schon
noch eine Unterschied.

von Michael S. (rbs_phoenix)


Lesenswert?

Man bin ich blind. Die gibts doch. dsPIC30F6014A mit 4096 EEPROM. Aus 
der dsPIC30 Familie gibts nur 5 ohne EEPROM. Oh man. Aber bei den PIC24F 
gibts nur 4 Stück mit 512 EEPROM und die sind in einem 20/28 pol. 
Gehäuse.


Wie sieht das da eigentlich aus. In der Tabelle steht EEPROM Data 
Memory. Diese PICs sind allerdings 16bit µCs. Heißt dass dann, das 
Beispielsweise der oben genannten PIC 4096 Byte hat oder 4096 
Speicherzellen á 16 bit?


Chris schrieb:
> Die 16F können noch 5V, hingegen die 18F nicht mehr. Das ist schon
> noch eine Unterschied.

Klar können die 5V.. Die dsPICs und PIC24 allerdings nich mehr und die 
PIC32MX glaube auch nicht.

von Christl (Gast)


Lesenswert?

Dies schrieb ich vorhin:

"Lt. div. Gerüchten (u.a. seitens Microchip!) sollen demnächst dsPic´s
mit "echtem" internen Eeprom auf den Markt kommen.

Die Eeprom-Emulation (Appl.-Note) ist halt ein Krampf !!! Microchip hat
nun endlich ein einsehen, was der Anwender wirklich haben will."



Hiermit sind nun die dsPic33, d.h. 3.3V-Typen gemeint !!!!

von Michael S. (rbs_phoenix)


Lesenswert?

Warscheinlich ist 3,3V einfach zu wenig, um ein EEPROM zu brennen. Bin 
allerdings eher dazu geneigt, 5V-PICs zu nehmen erstmal. Es sei denn es 
geht nicht anders oder wenn ich einen Pegelwandler zum Kommunizieren 
brauchen würde.

Haben die eine Self-Write Funktion? Vlt kann man dann fuschen und den 
Rest vom Programm-Flash-Speicher als "EEPROM" benutzen? ;)

von Master S. (snowman)


Lesenswert?

die teuren PIC18 arbeiten noch mit 5V, die günstigeren mit 3.3V; alle(?) 
24/30/33/32PICs arbeiten nur noch mit 3.3V versorgungsspannung (intern 
arbeiten die sogar nur mit 2.5V).
klar gibt es ein paar 16bit-PICs, die auch EEPROM haben, aber das sind 
nur ein paar ganz wenige :-( ..und ja, das ROM als EEPROM zu gebrauchen, 
ist ein murks, aber im notfall geht's.

von (prx) A. K. (prx)


Lesenswert?

Michael Skropski schrieb:

> Man bin ich blind. Die gibts doch. dsPIC30F6014A mit 4096 EEPROM.

Allerdings sind die "alten" dsPIC30 ziemliche Heizöfen und bis auf 
ebendiese 6000er mit dem A hintendran mit einer wahrhaft beachtlichen 
Käfersammlung ausgestattet.

> Wie sieht das da eigentlich aus. In der Tabelle steht EEPROM Data
> Memory. Diese PICs sind allerdings 16bit µCs. Heißt dass dann, das
> Beispielsweise der oben genannten PIC 4096 Byte hat oder 4096
> Speicherzellen á 16 bit?

Ein Byte ist auch bei 64-Bit Prozessoren noch ein Byte.

>> Die 16F können noch 5V, hingegen die 18F nicht mehr. Das ist schon
>> noch eine Unterschied.
>
> Klar können die 5V..

Er hatte wohl einen 18FJ oder so erwischt.

von (prx) A. K. (prx)


Lesenswert?

Michael Skropski schrieb:

> Haben die eine Self-Write Funktion? Vlt kann man dann fuschen und den
> Rest vom Programm-Flash-Speicher als "EEPROM" benutzen? ;)

Kann man, wird bei vielen Mikcrontrollern ohne EEPROM auch gemacht. Nur 
ist Flash nicht byteweise lösch/schreibbar, sondern nur in mehr oder 
minder grossen Blöcken, was den Umgang damit etwas komplizierter 
gestaltet.

von Master S. (snowman)


Lesenswert?

huch, ich sehe gerade, dass alle PIC30 mit 5V betrieben werden (und 
darum?) die meisten auch EEPROM haben.

von (prx) A. K. (prx)


Lesenswert?

Master Snowman schrieb:

> huch, ich sehe gerade, dass alle PIC30 mit 5V betrieben werden (und
> darum?) die meisten auch EEPROM haben.

Yep, aber eben nur die. Bei den PIC24/33 flog es raus. Aber der o.A. 
dsPIC30 frisst bei vollem Tempo immerhin 200mA, also 1W bei 5V.

von B. S. (bestucki)


Lesenswert?

Master Snowman schrieb:
> ich habe auch noch je 2 PIC16C56A und PIC16F877A rumliegen... abholung
> in der CH oder gegen rückfrankierter briefumschlag gratis abzugeben. hat
> jemand interesse?

Ich hätte Interesse an den PICs. Die kann ich immer für irgendetwas 
gebrauchen. Komme auch aus CH. Wenn du nicht gerade am anderen Ende der 
Schweiz wohnst, komme ich sie abholen. Schreib mir doch ne PN.

Gruss

von mkeller (Gast)


Lesenswert?

ich kann auch nur zum PIC18 raten. Durch C kommst du recht schnell voran 
und kannst auch komplexere Probleme übersichtlich programmieren. 
Außerdem gibts eine Menge interessante Peripherie, wie USB, CAN ...
Es gibt 5V Typen, EEPROM.
IMHO sehe keinen Grund direkt auf PIC24 umzusteigen, außer wenn man die 
Performance bzw die Peripherie wie DMA braucht.

von Peter (Gast)


Lesenswert?

>Warscheinlich ist 3,3V einfach zu wenig, um ein EEPROM zu brennen.

=> Alle 8Bit AVR von Atmel haben ein EEPROM und das geht auch noch bei
   2.7V bzw. 1.8V bei neueren Devices.

>Bin allerdings eher dazu geneigt, 5V-PICs zu nehmen erstmal. Es sei denn
>es geht nicht anders oder wenn ich einen Pegelwandler zum Kommunizieren
>brauchen würde.
>-----------------------------------------------------------------------
>die teuren PIC18 arbeiten noch mit 5V, die günstigeren mit 3.3V; alle(?)
>24/30/33/32PICs arbeiten nur noch mit 3.3V versorgungsspannung (intern
>arbeiten die sogar nur mit 2.5V).

=> Was für ein Durcheinader! Die klassischen Atmel AVR laufen alle bei
   3.3V und 5V (viele sogar von 1.8V bis 5.5V)

@ Andre Vujanovic
Gucke Dir auch die Atmel AVRs an und überlege gut, ob Du nicht besser 
mit AVR einsteigen möchtest? Seit ich von Microchip PIC auf Atmel AVR 
gewechselt habe, verschwende ich keinen Gedanken mehr daran, einen PIC 
jemals wieder anzufassen!

http://www.mikrocontroller.net/articles/AVR-Tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

von (prx) A. K. (prx)


Lesenswert?

Peter schrieb:

> => Was für ein Durcheinader! Die klassischen Atmel AVR laufen alle bei
>    3.3V und 5V (viele sogar von 1.8V bis 5.5V)

Was für ein Durcheinander: Da gibt es AVRs mit 5V und welche, die nur 
3,3V können! Schlimm!

von Master S. (snowman)


Lesenswert?

@all: bitte lasst den obigen beitrag von Peter einfach so stehen. es hat 
seine berechtigung auch auf AVRs aufmerksam zu machen, jedoch wenn sein 
beitrag kommentiert würde, hätten wir den 1001-sten beitrag bezüglich 
PIC vs. AVR. danke.

von Michael S. (rbs_phoenix)


Lesenswert?

Master Snowman schrieb:
> klar gibt es ein paar 16bit-PICs, die auch EEPROM haben, aber das sind
> nur ein paar ganz wenige :-(

Naja wie gesagt, fast alle dsPIC30 haben das und ein paar PIC24Fs auch 
(PIC24F08KA101)


A. K. schrieb:
> Ein Byte ist auch bei 64-Bit Prozessoren noch ein Byte.

Das ist klar, nur stand für die Spalte nicht Byte sondern Data Memory. 
Hätte ja auch sein können, dass pro Adresse ein 16bit Speicher 
hinterhängt.

Ich weiß ja nicht, wie teuer das Buch war, das er gekauft hat. Wenns n 
bisschen mehr war, ist es natürlich auch doof, einen PIC18 zu nehmen, 
und dann kein Beispiel, das im Buch steht, mitmachen zu können. 
Ansonsten für den Einstieg ist es denke ich mal egal, welchen PIC man 
nimmt. Ansich je simpler, desto Übersichtlicher ist es und um so 
einfacher/schneller kann man lernen.
Wenn ich dran denke, wie unser Lehrer den Internen Aufbau vom PIC16F84 
gezeigt hat, wäre ich bei nem PIC32MX (abslichtlich krasses Beispiel) 
bestimmt garnicht durchgestiegen.
Letztendlich sollte man dann nicht vergessen zu "wachsen" und auch 
bessere PICs zu nehmen.


Jetzt müsste sich der Andre nochmal melden ;)

von Master S. (snowman)


Lesenswert?

@Heinz B.
ich habe dir eine mail geschrieben. die PICs dind jedoch im DIL-gehäuse.

von Andre V. (Firma: Andres-Teilelädle) (vuman1)


Lesenswert?

Guten Abend zusammen, sorry das ich solange nichts von mir hab hören 
lassen aber ich war bis So. im Urlaub. Danke für die vielen Beiträge zu 
meiner Frage. Ich habe schon ein EV.Board aber für Pic´s und deshalb 
werde ich auch dabei bleiben trotz einiger hinweise auf AVR´s. Ich habe 
vor eine Motorradsteuerung zu programmieren für Blinker und Horn und die 
anderen Funktionen. Da ich schon ein paar Pic 16F habe werde ich auch 
versuchen diese zu verwenden. Bei Sprut hab ich schon mal nachgeschaut 
und finde die Seite auch sehr gut.
Hat jemand vielleicht ein Programm für die direkte Ansteuerung von einem 
Ausgang mit einem Eingang für einen PIC16F damit ich mal sehen kann wie 
der Aufbau so aussieht?
Danke Euch.
Gruß Andre.

von oldy (Gast)


Lesenswert?

Welche Programmiersprache ?
Und was meinst du mit direktem Ausgang und Eingang ?

von Master S. (snowman)


Lesenswert?

schau dir doch irgendein blinklicht-programm bei sprut an (sofern du in 
asm programmieren willst)

von Master S. (snowman)


Lesenswert?

Heinz B. hat sich bis heute noch nicht gemeldet, falls jemand anderer 
interesse hat -> PM an mich

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.