- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Initialisierung des internen Oszillators des 12F675 mit cc5x

  1. #1

    Initialisierung des internen Oszillators des 12F675 mit cc5x

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich möchte gerne für eine minimal Schaltung, den internen Oszillator des
    PIC 12F675 verwenden, welchen ich in C mit cc5x programmiert habe.
    Leider bekomme ich es nicht hin diesen zu initialisieren. Kann mir dazu
    jemand einen Tipp geben. Wie muss die #pragma config aussehen und was
    muss ich sonst noch beachten?

    Habe zur Zeit nur folgende drin stehen:
    // WD off, Power up Timer on, IntRC Oscillator, CP off
    #pragma config |=0xFEAz

    Danke und Gruß
    Basti

  2. #2
    Moin
    ich gehe mal davon aus das du PIC Controller kennst.

    #FUSES INTRC_IO //Internal RC Osc, no CLKOUT
    #use delay(clock=20000000)

    Bei use delay deine Clock frequenz eingeben. Dann kannst du über setup_oscillator( OSC_2MHZ ); die Frequenz des Oszilator bestimmen. Welche Frequenze der Interne kann erfährst du im Datenblatt.

  3. #3
    Zitat Zitat von PIC_Tick
    Moin
    ich gehe mal davon aus das du PIC Controller kennst.

    #FUSES INTRC_IO //Internal RC Osc, no CLKOUT
    #use delay(clock=20000000)

    Bei use delay deine Clock frequenz eingeben. Dann kannst du über setup_oscillator( OSC_2MHZ ); die Frequenz des Oszilator bestimmen. Welche Frequenze der Interne kann erfährst du im Datenblatt.
    Hi,
    danke für deine Antwort, leider hat sie mir nur bedinngt weitergeholfen da der Syntax wohl für einen anderen Compiler als cc5x ist und ich bei cc5x nur eine Fehlermeldung bekomme:

    (The source line starting with '#' contains invalid syntax or context
    dependent syntax)
    Aber ggf. habe ich auch was anderes falsch gemacht. Hier mal mein Quellcode:


    Code:
    //Display Ansteuerung für 19"-Rahmen\\
       
    
    #include "prozess.h"      			// Der verwendete Prozessor 
    #include "C:\cc5x\INT16CXX.H" 		//Zuständig für das Speichern der Register bei einem Interrupt
    #FUSES INTRC_IO //Internal RC Osc, no CLKOUT
    #use delay(clock=40000000)
     
    
    
    void pause(uns16 ms)				// Unterprogramm zum Abwarten einer
    {									// angegebenen Anzahl von Millisekunden
    while(ms)							// Schleife verlassen, wenn ms=0 ist
    	{
    	OPTION = 2;						// Vorteiler auf 8 einstellen
    	TMR0 = 131;						// 125 * 8 = 1000 (= 1 ms)
    	while (TMR0);					// Abwarten einer Millisekunde
    	ms--;							// "ms" mit jeder Millisekunde erniedrigen
    	}
    }
    
    void aktivieren()
    {
    GPIO.4=1;
    GPIO.1=1;
    pause(1000);
    pause(1000);
    pause(1000);
    GPIO.4=0;
    		}
    
    void deaktivieren()
    {
    GPIO.1=0;
    pause(1000);
    pause(1000);
    pause(1000);
    	}
    
    
    void main(void)						// Hier beginnt das Hauptprogramm
    {
    CMCON=0x07; 							//alles digitale IO-Pins
    ANSEL=0x00; 							//alles digitale IO-Pins
    WPU=0;      							//Pullups off
    setup_oscillator( OSC_2MHZ );
    
    TRISIO.0=1; 							// Eingang BUS
    TRISIO.1=0; 							// Ausgang zum Schalten der 4066 
    TRISIO.2=1; 							// Eingang Taster mit Pulldown
    TRISIO.3=0; 							// Ausgang Signal für BUS
    TRISIO.4=0; 							// Unbenutzt
    TRISIO.5=0; 							// Unbenutzt
    
    
    Start:
    
    if (GPIO.2 == 1) {
    aktivieren();
    	}
    	
    if (GPIO.0 == 1) {
    deaktivieren();
    }
    	
    goto Start;
    
    }

  4. #4
    setze das Fuse mal dort wo auch die anderen Fuses gesetzt werden. Ich denke in der Prozess.H wird das gemacht. Und das use delay kommt unter die Fuses.

    Der Code ist für den CCS Compiler erstellt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress