Hallo, ich hab bisher 8051 programmiert und muss jetzt auf PIC umsteigen. Leider stoß ich dabei schon auf die ersten Ungereimtheiten. Ich seh bei den Configuration Bits und wie man diese setzt nicht so richtig durch. Ich benutze den CCS C Compiler. Jetzt gib es ja viele Möglichkeiten das Device zu konfigurieren (PIC18F425): über den Visual Device Initializer in MPLAB, über Assembler-Direktiven, über das Configuration Bit Window in MPLAB oder über das Programmer Tool. Meine Fragen sind jetzt Folgende: 1. Z.B. die Oscillator Konfiguration: Werden die Default-Inhalte der Oszillator-SFRs von den Osc.-Configuration Bits überschrieben? Das ist im Datenblatt nicht ersichtlich. 2. Was erzeugt denn der Visual Device Initializer (z.B. in Bezug auf die Osc.-Einstellung), initialisiert er die Configuration Bits oder die SFRs? 3. Das Configuration Bit Window kapier ich auch nicht. Wenn ich da irgendwas einstelle, ist es nach dem compilieren wieder weg. Im MPLAB Users Guide steht: "If you want to change Configuration bit values in the window, do not enter any in code until you have completed development. Then put your window values into code, rebuild the project..." Heißt das jetz, dass ich es am Ende doch per Hand in den Code eintragen muss? Werden die Bits dann in meinem Programm selber gesetzt oder werden dadurch nur Informationen für den Programmer erzeugt. Ich find das alles etwas verwirrend. Danke für eure Hilfe schonmal im Voraus!
PIC18F425 Hmm, die Website hilft mir auch nicht unbedingt. Inzwischen weiß ich, dass der Visual Device Initializer auch Direktiven für die Configuration Bits setzt und dass diese dann vom Programmer eingelesen werden. Was ich aber immer noch nicht kapiere ist der Sinn und Zweck des "Configuration Bit Window", wenn die Einstellungen ständig verschwinden.
bei mir verschwinden die nicht. ausser ich führe einen read durch. schonmal workspace gespeichert? bin mir jetzt nicht ganz sicher aber kann es sein, dass die configuration bits eh nur bis du deinen code compilierst eingestellt sein müssen, d.h. einmal kompilieren mit deinen gewünschten werten und solang du nix änderst am code kann da stehen was mag?
Eigentlich ist es so, dass die im Code gesetzten Config-Bits (__CONFIG) im HEX-File landen. Die Programmiersoftware übernimmt diese, bietet aber an, sie (vor dem Programmieren) zu ändern - im Config-Window.
Kann es sein, dass man mit dem Microcontroller verbunden sein muss? Über ICD2 oder so? Ich mach das jetzt alles noch im Trockenen, da mein Evaluation Board noch nicht da ist. Ich kapier einfach nicht, wozu dieses Configuration Window da ist. Habt ihr mal die Beschreibung in der Hilfe oder im Users Guide zu MPLAB angeschaut, vielleicht wird jemand von euch daraus schlau?
Du musst nicht verbunden sein. Den Visual Initializer kannst du vergessen, lösch ihn aus deinem Gedächtnis. es gibt zwei Möglichkeiten Config bits zu setzen. 1. Direktiven im Code 2. Über das Fenster in MPLAB. wenn direktiven im Code stehen überschreiben die beim compilieren die einstellungen des Fensters. Also nicht kombinieren. entweder 1. oder 2. Vermutlich hast du von der rumspielerei mit dem Visual Initializer noch was im code stehen was da nicht hingehört.
> wenn direktiven im Code stehen überschreiben die beim compilieren die > einstellungen des Fensters. > Also nicht kombinieren. > entweder 1. oder 2. Genau! Meine Vorgehensweise: Config-Bits generell im Code setzten und evtl. im 'Config Bit Window' kontrollieren - aber nicht ändern! - ob die Bits so sind, wie gedacht. Speziell das Code-Protection-Bit bei den 'windowed devices' sollte man vor dem Brennen 999 mal kontrolieren ;-)
Wieso? Funktioniert der VDI nicht richtig? Naja, OK, ist eh besser wenns im Code steht. Aber trotzdem find ich das komisch, dass die Einstellungen immer weg sind nach dem kompilieren. Ich hab da auch wirklich nichts im Code stehen. Ich hab nur ein einziges File bis jetzt. Ein C-Source-File, in dem nix weiter steht als void main() ;) Und diese Aussage im Users Guide irritiert mich einfach: "Once you have completed development, you will then have to copy your Configuration Bits window settings into initialization data" MUSS man das machen oder SOLLTE man das machen?
Das sollte man zunlichst machen da sonst die config bits nur im (mplab-)Projekt festgelegt sind. Falls jemand nur das Quellfile anschaut findet er keine Info über die config. Der VDI erzeugt meines Wissens Quellcode (bin nicht sicher ob eigenes file), der in das Quellfile mit den Init-Routinen eigebunden gehört. Für PIC16F Controller ist das larifari, aber bei dsPIC33 z.B. kann es schon ein paar 100 Zeilen ASM-Quellcode geben bis alles initialisiert ist.
Ja, der VDI erzeugt Quellcode. Und in diesem stehen dann auch am Anfang die _config-Direktiven und danach die SFR-Initialisierungen. Eigentlich find ich das ziemlich genial. Das is schon ne bequeme Art. Danke für eure Hilfe, mir ist jetzt klar, wozu dieses Configuration Bit Window da ist.
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.