Hallo und einen schönen guten Tag, ich möchte den PIC16F818 mit einem internen RC-Oszilattor laufen lassen und benutze den CCS C-Compiler. Wie kann ich das OSCCON- und OSCTUNE-Register am besten einstellen? Schöne Grüße Peter
Hi Peter mit dem Präprozessorbefehl #fuses kannst du die Config-Bits einstellen: #fuses INTRC,NOWDT,PUT,NOMCLR,BROWNOUT Hier schaltest du den internen RC-Oszillator ein (INTRC), Watchdog aus, Powerup Timer ein, NOMCLR (MCLR ist ein I/O) , Brownout ein. INTRC ist für deine Einstellungen . Die anderen Einstellung musst du nach deinen Konfiguration einstellen. Fernando Heitor
Hallo Fernando und andere Mitleser, danke erst einmal, aber mit #fuses INTRC,... habe ich ja den internen Oszillator eingeschaltet. Das ist klar! Beim PIC16F818 kann ich die Frequenz über das OSCCON-Register einstellen z.B. den Wert 0x70 für 8MHz. Die Frage war eigentlich, wie ich genau dieses Register einstellen kann. Gibt es da einen Befehl für oder wie kann ich das Register einstellen. Dann kann man noch ein Feintuning mit OSCTUNE vornehmen, was allerdings nicht unbedingt nötig ist, da ich den Oszillator auch mit dem Setzen von BIT2 des OSCCON-Registers stabiler machen kann. Vielleicht habt ihr ja noch einen Tipp? :-) Gruß Peter
Hi Peter, jetzt habe ich verstanden, was du möchtest. Es gibt im Moment keine Sonderfunktion für den CCS C-Compiler um die Frequenz über das OSCTUNE-Register einzustellen. Aber es gibt bei einigen PIC-Headerdateien die Funktion setup_oscillator(). Vielleicht ist in der Headerdatei des PIC16F818 diese Funktion auch integriert. Habe leider in meinem Compiler Version diesen neuen PIC noch nicht integriert. Ansonsten konfigurierst du, wie du schon oben erwähnt hast, das Register OSCTUNE direkt. Fernando Heitor
Hallo Fernando, einen Befehl setup_oscillator() kennt der CCS-Compiler leider nicht. Ich wußte auch schon mal, wie ich Register in C auch direkt manipulieren kann. Es ist das Register 0x8F! Weißt du vielleicht, wie das geht? Gruß Peter PS: Ich habe deine Webseiten nun auch gefunden und in dem CCS-Forum ebenfalls diese Frage gestellt! ;-)
#byte blabla=0x8F blabla=... so.. zumindest gehts mit #bit asdf=x.y so wirf mal einen blick in die hilfe
Vielen Dank euch allen für die Hilfe! Ich habe es dann so gemacht #byte OSCCON = 0x8F OSCCON = 0x64; und so funktioniert es dann auch. Schöne Grüße Peter
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.