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?
PIC 12F1822 ist ganz anders aufgebaut. Aber wenn dein C Compiler ihn unterstützt dann müsste es gehen.
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....
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.
okay danke vielleicht kurz zur erklärung was die SFR register sind? Dass ich noch nen anhaltspunkt hab...
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.
danke dir. Wie gesagt weiß nicht wo anfangen. Aber hiermit sollt es dann wohl funktionieren.
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
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.
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.
also die Grundlagen sollte man schon drauf haben, wenn man schon so groß ist und in c programmieren tut.
@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.
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?
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
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.