PIC12F1822 vers. PIC 18F4550

Gast #2616482
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?
#2616668
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.
#2616830
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
Gast #2618233
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.
#2618257
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?
#2618395
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
Gast #2618402
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
Gast #2618404
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.
#2618775
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren