Hallo an alle! An meinem dsPIC33 wird an PIN 63 ein externer Quarz angeschlossen. Meine Frage ist: Muss ich das entsprechende Bit im TRIS Register auf Input setzen ? Im Datenblatt habe ich nur was von den OSCON bits gelesen. Vielen dank.
Hallo, Ich habe in den Config bits jetzt folgendes gesetzt: pragma config POSCMD = HS // Primary Oscillator Mode Select bits (HS Crystal Oscillator Mode) HS da ich einen 8 MHz externen Takt auf der Platine sitzen hab. Ist das richtig so ? Bzw was muss ich noch einstellen ? lG
Weiß das niemand? Ich weiß gerade echt nicht weiter.. will ja auch nichts kaputt machen.
Naja kaputt machen wirst du nichts. Aber ich denke, wenn du das OSCON Register kann nichts passieren bzw. du musst es nicht als Eingang setzen
Ist ein PIC dsPIC33EP512GM710 Ich benutze MPLAP X IDE v4,15 Ne richtige Anleitung wo drin steht was alles genau gesetzt werden muss für einen Oscillator finde ich einfach nicht. Nur jegliche Register, aber was konkretes nicht..desshalb bin ich gerade auf eure Hilfe angewiesen.
OK, also da gibt es immer AP Notes bzw. es immer das selbe Prinzip. Aber Microchip über nimmt mit den Bits die du am Anfang setzt, die gesamten Einstellungen (daher auch das mit dem Input und Output
Guten Morgen, ich habe folgendes gesetzt: FOSCSELbits.FNOSC=0b010 ; //primary oscillator (xt, hs, ec) FOSCbits.POSCMD=0b01;//XT Crystal Nur komisch dass ich hier laut Datenblatt XT setzen muss für meine 8MHz, und bei den config bits wie ganz oben musste ich HS setzen. Ist das alles? Bzw erkennt der Compiler die 2 Register überhaupt nicht. Obwohl ich die entsprechende Datei vom PIC includet habe und auch die Standard IO
Habs mir nur kurz angesehen, aber vielleicht hilft es Klarheit zu schaffen. https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-c/clock-oscillator
Hm..Da fehlt noch was..denn mein Compiler erkennt die FOSC Register ja nicht mal.
Das ist doch was ganz normales, ich verstehe echt nicht warum ich nichts konkretes dazu finde bzw warum es nicht mal funktioniert.
alterhase schrieb: > FOSC OK. So dürfte nur der interne Systakt benannt sein, das Register eher FOSCSEL. Such dir doch das Headerfile für den Pic und schau nach. Im Dabla suchen hilft meist auch.
Das ist was ich in der entsprechenden Header Datei gefunden habe: /* Register FOSC (0x557f6) */ extern __attribute__((space(prog))) _prog_ uint16_t _FOSC; #define _FOSC(x) __attribute__((address(0x557f6),deprecated_definition("consider migrating to #pragma config"),section("__FOSC.sec"),space(prog))) _prog_ uint16_t _FOSC = (x); /* ** Only one invocation of FOSC should appear in a project, ** at the top of a C source file (outside of any function). ** ** The following constants can be used to set FOSC. ** Multiple options may be combined, as shown: ** ** _FOSC( OPT1_ON & OPT2_OFF & OPT3_PLL ) ** ** Primary Oscillator Mode Select bits: ** POSCMD_EC EC (External Clock) Mode ** POSCMD_XT XT Crystal Oscillator Mode ** POSCMD_HS HS Crystal Oscillator Mode ** POSCMD_NONE Primary Oscillator disabled ** ** OSC2 Pin Function bit: ** OSCIOFNC_ON OSC2 is general purpose digital I/O pin ** OSCIOFNC_OFF OSC2 is clock output ** ** Peripheral pin select configuration: ** IOL1WAY_OFF Allow multiple reconfigurations ** IOL1WAY_ON Allow only one reconfiguration ** ** Clock Switching Mode bits: ** FCKSM_CSECME Both Clock switching and Fail-safe Clock Monitor are enabled ** FCKSM_CSECMD Clock switching is enabled,Fail-safe Clock Monitor is disabled ** FCKSM_CSDCMD Both Clock switching and Fail-safe Clock Monitor are disabled ** */ #define POSCMD_EC 0xFFFC #define POSCMD_XT 0xFFFD #define POSCMD_HS 0xFFFE #define POSCMD_NONE 0xFFFF #define OSCIOFNC_ON 0xFFFB #define OSCIOFNC_OFF 0xFFFF #define IOL1WAY_OFF 0xFFDF #define IOL1WAY_ON 0xFFFF #define FCKSM_CSECME 0xFF3F #define FCKSM_CSECMD 0xFF7F #define FCKSM_CSDCMD 0xFFBF /* Register FOSCSEL (0x557f8) */ extern __attribute__((space(prog))) _prog_ uint16_t _FOSCSEL; #define _FOSCSEL(x) __attribute__((address(0x557f8),deprecated_definition("consider migrating to #pragma config"),section("__FOSCSEL.sec"),space(prog))) _prog_ uint16_t _FOSCSEL = (x); /* ** Only one invocation of FOSCSEL should appear in a project, ** at the top of a C source file (outside of any function). ** ** The following constants can be used to set FOSCSEL. ** Multiple options may be combined, as shown: ** ** _FOSCSEL( OPT1_ON & OPT2_OFF & OPT3_PLL ) ** ** Oscillator Source Selection: ** FNOSC_FRC Internal Fast RC (FRC) ** FNOSC_FRCPLL Fast RC Oscillator with divide-by-N with PLL module (FRCPLL) ** FNOSC_PRI Primary Oscillator (XT, HS, EC) ** FNOSC_PRIPLL Primary Oscillator with PLL module (XT + PLL, HS + PLL, EC + PLL) ** FNOSC_SOSC Secondary Oscillator (SOSC) ** FNOSC_LPRC Low-Power RC Oscillator (LPRC) ** FNOSC_FRCDIVN Internal Fast RC (FRC) Oscillator with postscaler ** ** PWM Lock Enable bit: ** PWMLOCK_OFF PWM registers may be written without key sequence ** PWMLOCK_ON Certain PWM registers may only be written after key sequence ** ** Two-speed Oscillator Start-up Enable bit: ** IESO_OFF Start up with user-selected oscillator source ** IESO_ON Start up device with FRC, then switch to user-selected oscillator source ** */ #define FNOSC_FRC 0xFFF8 #define FNOSC_FRCPLL 0xFFF9 #define FNOSC_PRI 0xFFFA #define FNOSC_PRIPLL 0xFFFB #define FNOSC_SOSC 0xFFFC #define FNOSC_LPRC 0xFFFD #define FNOSC_FRCDIVN 0xFFFF #define PWMLOCK_OFF 0xFFBF #define PWMLOCK_ON 0xFFFF #define IESO_OFF 0xFF7F #define IESO_ON 0xFFFF
Ich denke ich hatte die ganze Zeit über den externen Takt schon eingestellt.. In meiner config Datei habe ich folgendes eingestellt: / FOSC #pragma config POSCMD = XT // Primary Oscillator Mode Select bits (XT Crystal Oscillator Mode) #pragma config OSCIOFNC = OFF // OSC2 Pin Function bit (OSC2 is clock output) #pragma config IOL1WAY = ON // Peripheral pin select configuration (Allow only one reconfiguration) #pragma config FCKSM = CSDCMD // Clock Switching Mode bits (Both Clock switching and Fail-safe Clock Monitor are disabled) // FOSCSEL #pragma config FNOSC = PRI // Oscillator Source Selection (Primary Oscillator (XT, HS, EC)) #pragma config PWMLOCK = ON // PWM Lock Enable bit (Certain PWM registers may only be written after key sequence) #pragma config IESO = OFF // Two-speed Oscillator Start-up Enable bit (Start up with user-selected oscillator source) Also habe ich schon quasi durch #pragma config POSCMD = XT // Primary Oscillator Mode Select bits (XT Crystal Oscillator Mode) und #pragma config FNOSC = PRI // Oscillator Source Selection (Primary Oscillator (XT, HS, EC)) meinen externen Quarz eingestellt ? Scheint mir etwas wenig. lG
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.