Forum: Mikrocontroller und Digitale Elektronik PIC12F1822 vers. PIC 18F4550


von prixsecco (Gast)


Lesenswert?

Hallo,
Bin bisher nur das programmieren mit dem PIC18F4550 mittels C Compiler 
in MPLAB gewöhnt. Dachte mir den Code den ich für den PIC 18 geschrieben 
habe kann ich auch für den PIC 12F1822 verwenden aber dem scheint nicht 
so zu sein.
Ist dieser nur in Assembler Code programmierbar?

von Sunny (Gast)


Lesenswert?

PIC 12F1822 ist ganz anders aufgebaut.
Aber wenn dein C Compiler ihn unterstützt dann müsste es gehen.

von prixsecco (Gast)


Lesenswert?

Ja er unterstütz ihn aber er bringt mir nur Fehlermeldungen?!?

Von "A device need to be required before" or "not a valid PIN" etc....

von Sunny (Gast)


Lesenswert?

Das ist weil der PIC 12F1822 weniger Pins hat und andere SFR register.
Das musst du im datasheet nachsehen wo der Unterschied ist und 
etsprechend dein Program ändern.

von prixsecco (Gast)


Lesenswert?

okay danke
vielleicht kurz zur erklärung was die SFR register sind? Dass ich noch 
nen anhaltspunkt hab...

von facebook (Gast)


Lesenswert?

muhaha

von Michael S. (rbs_phoenix)


Lesenswert?

sfr heißt "Special Funktion Register". Also Register für z.B. Module 
oder die Port-Register. Der 12F hat 8 Pins und der 18F hat 40. Da ist es 
nur logisch, dass der große mehr Funkionen und Module hat. Wenn dein 
Programm z.B. das USB modul benutzt, kann der 12F damit nichts anfangen. 
Oder wenn du ein Pin benutzt, kann der 12F nichts damit anfangen, da das 
Register GPIO heißt und nicht PORTx usw.

von prixsecco (Gast)


Lesenswert?

facebook schrieb:
> muhaha

klugscheißer

von prixsecco (Gast)


Lesenswert?

danke dir.
Wie gesagt weiß nicht wo anfangen.
Aber hiermit sollt es dann wohl funktionieren.

von Frank K. (fchk)


Lesenswert?

prixsecco schrieb:
> Hallo,
> Bin bisher nur das programmieren mit dem PIC18F4550 mittels C Compiler
> in MPLAB gewöhnt. Dachte mir den Code den ich für den PIC 18 geschrieben
> habe kann ich auch für den PIC 12F1822 verwenden aber dem scheint nicht
> so zu sein.
> Ist dieser nur in Assembler Code programmierbar?

Welchen C-Compiler hast Du verwendet? Der C18 von Microchip kann nur 
Code für die PIC18F* erzeugen. Die PIC10/12/16... haben weniger Befehle, 
unter anderem welche, auf die der C18 angewiesen ist. Der große 
Unterschied zwischen PIC10/12/16 und PIC18 ist, dass der PIC18 etwas 
compilerfreundlicher gestaltet wurde.

Für die kleineren PICs gibts einen passenden Compiler genau dafür von 
HiTech (von Microchip gekauft), der die dann kann. Pins, SFRs etc must 
Du natürlich anpassen.

fchk

von Sunny (Gast)


Lesenswert?

Ich sehe aber nicht den Sinn von dem PIC18F4550 zu PIC 12F1822 
umzusteigen.
Wenn das ein PIC16F877 wäre oder änlich, dann könnte das gehen, aber mit 
deinen Kenntnissen schaftst du das sowieso nie.

von Joachim .. (joachim_01)


Lesenswert?

Da hat Sunny leider nicht unrecht. Mein Tip: Mach kleinere Schritte. 
Wenn du schon mit Begriffen wie SFR Schwierigkeiten hast solltest du mit 
was einfacherem wie USB anfangen, da ist vielleicht schon RS232 
Ein-Ausgabe auf nem Standard HD44780 LCD sportlich genug.

von facebook (Gast)


Lesenswert?

also die Grundlagen sollte man schon drauf haben, wenn man schon so groß 
ist und in c programmieren tut.

von prixsecco (Gast)


Lesenswert?

@facebook:
Naja Foren leben eben auch von Usern wie mir. Wenn du nicht mehr 
beizutragen hast zu diesem Thema wie unsinnige Kommentare dann bitte ich 
dich diesen Thread zu verlassen. Danke.
---------------------------


Der PIC18F4550 ist für Testzwecke ok aber für die Endlösung soll ein 
eine low voltage version her. Also mit 3.3 V versorgabar und die 8 Pin 
des 12F1822 sind ausreichend. Deshalb die Wahl.
Wusste nicht dass diese solche Unterschiede in der Programmierung 
aufweisen.

von Michael G. (let)


Lesenswert?

Bei den PIC12, PIC16 und PIC18 handelt es sich um 8 Bit Controller die 
von Microchip hergestellt werden. Darüber hinaus haben die Familien 
nicht viel miteinander zu tun. Mir ist auch kein Compiler bekannt der 
alle Typen zugleich unterstützt. Klar, da sind die CCS Compiler PCB, PCM 
und PCH aber das sind letztlich drei verschiedene Compiler. Nur halt vom 
gleichen Hersteller.

Also, welchen Compiler verwendest du?

von PICfan (Gast)


Lesenswert?

M.G. schrieb:
> Mir ist auch kein Compiler bekannt der
> alle Typen zugleich unterstützt.

gibs doch.

Microchip hat seit Neuem eine überarbeitete Reihe an Compilern.

Für 8-bit uC (PIC10,12,16, und 18) -- XC8
für 16-bit uC (PIC24 und dsPIC) -- XC16
für 32-bit uC (PIC32) -- XC32

HTH

von Jens P. (Gast)


Lesenswert?

MircoC von Mikroelektronika sollte auch mit allen umgehen können.

von Martin S. (drunkenmunky)


Lesenswert?

PICfan schrieb:
> gibs doch.
>
> Microchip hat seit Neuem eine überarbeitete Reihe an Compilern.
>
> Für 8-bit uC (PIC10,12,16, und 18) -- XC8
> für 16-bit uC (PIC24 und dsPIC) -- XC16
> für 32-bit uC (PIC32) -- XC32
>
> HTH

Ich denk, was sich da geändert hat, ist der Name. Sieht mir doch ganz 
nach den alten Compilern aus. PIC18 ist wiederum ein anderer Compiler.

Ist nur ein Marketing-Gag

von prixsecco (Gast)


Lesenswert?

Ich verwende ccsc v. 4.3.0.285


MPLAB           8.76.00.00    Certified
Windows OS Unknown6.1.7601.2 Service Pack 1n\a
ICDDB           7.51.00.01    n\a
MasterDB        2.24.55.76    n\a
DLLInfoRec      8.62.01.0     Certified
DMCI            1.10.0.6      Certified
ICD2            8.53.6.1      Certified
MemGauge        1.00.00.00    Certified
MPAppInOut      1.0.0.0       Certified
MPBootloader    1.0.0.5       Certified
MPChecksum      2.22.02.16    Certified
MPDebugger      3.10.00.00    Certified
MPDevice        2.40.00.00    Certified
MPDiff          1.01.00.00    Certified
MPDisplay2      3.76.00.00    Certified
MPDisplays      3.76.00.00    Certified
MPEditor4       4.56.00.00    Certified
MPEditorStg     1.02.00.00    Certified
MPExpress       2.30.00.00    Certified
MPForum         3.02.00.00    Certified
MPICD3          1.0.3.51      Certified
MPIceState      1.22.00.00    Certified
MPIceStopwatch  1.22.00.00    Certified
MPLAB SIM12     2.10.00.00    Certified
MPLAB SIM16     2.10.01.01    Certified
MPLAB SIM18     3.20.00.00    Certified
MPLAB SIM30     4.30.00.00    Certified
MPLAB SIM32     0.00.10.06    Certified
MPLoader        2.22.00.00    Certified
MPLogicDisplay  1.51.00.00    Certified
MPMemory        2.3           Certified
MPPICkit3       1.0.1.58      Certified
MPPICkit3OB     1.0.1.32      Certified
MPProgram       2.2           Certified
MPProject       3.7.1         Certified
MPRealICE       6.0.4.09      Certified
MPRecorder      1.01.00.00    Certified
MPSim           8.62.01.0     Certified
MPSimBreakpoints1.60.0.0      Certified
MPSimulator     1.60.00.2     Certified
MPStimulus      2.52.00.00    Certified
MPStopwatch     2.51.00.0     Certified
MPTags          2.00.00.00    Certified
MPTask          1.1.1.0       Certified
MPTranslator    2.31.00.00    Certified
MPUSrcvw4       4.00.01.06    Certified
MPWatchUpdateSupport1.1.2.0       Certified
PICkit2         0.0.3.63      Certified
SCLStimulus     3.60.00.00    Certified
Suite_CCSPic    2.0.0.7       Uncertified
Suite_dsPIC     3.10.1        Certified
Suite_LSCProxy  2.1.2.0       Certified
Suite_Microchip 3.10.7        Certified
Suite_PIC32     5.1.8         Certified
Vault_CVS       1.2.0.0       Certified
Vault_PVCS      1.0.0.3       Certified
Vault_VSS       1.4.0.2       Certified

von PICfan (Gast)


Lesenswert?

Martin S. schrieb:
> Ich denk, was sich da geändert hat, ist der Name. Sieht mir doch ganz
> nach den alten Compilern aus.

nicht ganz.

Die haben ihren Compilern mit denen von HiTech kombiniert.  Neu ist das 
XC8 jetzt alle 8-bit uCs unterstützt.  Und es ist weit mehr als nur eine 
Namensänderung.

Bei XC32 gib ich dir recht. Da ist nür eine Namensänderung zu sehen.

von Michael S. (rbs_phoenix)


Lesenswert?

Wenn es letztendlich ein 12F1822 werden soll, dann würd ich mir davon 
einen holen und testen. Den gibts auch als DIP und geht von 5.5V bis 
2.3V runter. Brauchst also keinen extra LF Typ, um den mit 3.3V zu 
betreiben. An dem Ziel PIC zu testen find ich persönlich am besten. Wenn 
ich iwas spezielles testen will (z.B. n I2C EEPROM ansteuern) und dafür 
n dev-board nehme, dann guck ich vorher, was der PIC kann, für den ich 
das programmiere, damit ich keine Module benutze, die der andere PIC 
nicht hat. Bei Tastern o.ä. definiere ich am Anfang dann eine Variable. 
Somit braucht man die Zuweisung nur einmal und nur an einer Stelle 
ändern.

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.