Forum: Mikrocontroller und Digitale Elektronik PIC16F884 interner Oszillator


von Michael S. (misax)


Lesenswert?

was muss ich denn hier ändern, um den internen Oszillator zu benutzen ?
1
#pragma config FOSC = HS // Oscillator Selection bits (INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
2
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
3
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
4
#pragma config MCLRE = ON       // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)
5
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
6
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
7
#pragma config BOREN = ON       // Brown Out Reset Selection bits (BOR enabled)
8
#pragma config IESO = ON        // Internal External Switchover bit (Internal/External Switchover mode is enabled)
9
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
10
#pragma config LVP = ON         // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)
11
12
// CONFIG2
13
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
14
#pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)
15
16
// #pragma config statements should precede project file includes.
17
// Use project enums instead of #define for ON and OFF.
18
19
#define _XTAL_FREQ 4000000
20
#include <xc.h>
21
22
// #pragma config statements should precede project file includes.
23
// Use project enums instead of #define for ON and OFF.
24
25
#include <xc.h>
26
27
int main()
28
{
29
  TRISA1 = 0;
30
  while(1)
31
  {
32
    RA1 = 1;
33
    __delay_ms(1000);
34
    RA1 = 0;
35
    __delay_ms(1000);
36
  }
37
  return 0;
38
}

MOD: das nächste Mal die [c] Tags selber einfügen. Siehe die Anleitung 
"Wichtige Regeln - erst lesen, dann posten!" über jeder Texteingabebox.

: Bearbeitet durch Moderator
von Uwe (Gast)


Lesenswert?

Die erste Zeile muss geändert werden.
Siehe Datenblatt.

von Michael S. (misax)


Lesenswert?

muss ich INTRC Clock oder Noclock nehmen ?
was ist mit der Frequenz ?

von Uwe (Gast)


Lesenswert?

INTRC Clock nehmen.
Frequence wird im OSSCON Register eingestellt.

von Uwe (Gast)


Lesenswert?

OSCCON soll es heisen.

von Michael S. (misax)


Lesenswert?

was ist mit dieser Zeile ?
#define _XTAL_FREQ 4000000
wenn ich die wegnehme kommt ein Kompilierungsfehler
wie kann ich das OSCCON-Register beschreiben ?

von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> was ist mit dieser Zeile ?
> #define _XTAL_FREQ 4000000
> wenn ich die wegnehme kommt ein Kompilierungsfehler

Damit teilt man dem Compiler die Taktfrequent mit, dasmit der das für 
WAIT richtig berechnen kann.


> wie kann ich das OSCCON-Register beschreiben ?

Bank1 auswählen, und dann ins Register schreiben.

von Teo D. (teoderix)


Lesenswert?

Sollen wir dir jetzt jede Kleinigkeit vorkauen?!
Arbeite diese Seite mal durch! Ist ja auch nicht das Erste mal, dass ich 
sie dir poste!
http://www.sprut.de/electronic/pic/index.htm

Und Himmel, Herrgott, schau dir endlich das Dabla an!!!

von Uwe (Gast)


Lesenswert?

In dem du schaust welche Werte du im Regsiter
setzen musst um deine Frequenz zu bekommen.
Also OSCCON = xx

von Uwe (Gast)


Lesenswert?

Welche Bank1 ? Wir sind in C

von H. H. (Gast)


Lesenswert?

Uwe schrieb:
> Welche Bank1 ? Wir sind in C

C ändert die Hardware?

von Michael S. (misax)


Lesenswert?

ok wenn ich 4MHZ nehme kann ich den Standardwert lassen und muss nichts 
setzen korrekt ?

von Peter K. (Firma: www.pic-microcontroller.de) (peter_k)


Lesenswert?

Schau mal hier rein:
https://www.pic-microcontroller.de/video-tutorial/mikrobasic-erstes-programm/

Da wird erklärt wie man die Register beschreibt. In der
mitte des Videos zu finden.

von Michael S. (misax)


Lesenswert?

prima danke

von Teo D. (teoderix)


Lesenswert?

H. H. schrieb:
> Damit teilt man dem Compiler die Taktfrequent mit, dasmit der das für
> WAIT richtig berechnen kann.

__DELAY_MS, __DELAY_US, __DELAYWDT_MS, __DELAYWDT_US

von H. H. (Gast)


Lesenswert?

Teo D. schrieb:
> H. H. schrieb:
>> Damit teilt man dem Compiler die Taktfrequent mit, dasmit der das für
>> WAIT richtig berechnen kann.
>
> __DELAY_MS, __DELAY_US, __DELAYWDT_MS, __DELAYWDT_US

Dann halt DELAY.

von H. H. (Gast)


Lesenswert?

Michael S. schrieb:
> ok wenn ich 4MHZ nehme kann ich den Standardwert lassen und muss
> nichts
> setzen korrekt ?

Das wäre kein guter Programmierstil.

von Mucky F. (Gast)


Lesenswert?

H. H. schrieb:
> Das wäre kein guter Programmierstil.

Evtl. wäre nicht schlecht bei RA1 Comparator und Analogeingang 
abzuschalten. Sonst ist die Zeit für den Blinky recht unerheblich ;-).

von H. H. (Gast)


Lesenswert?

Mucky F. schrieb:
> H. H. schrieb:
>> Das wäre kein guter Programmierstil.
>
> Evtl. wäre nicht schlecht bei RA1 Comparator und Analogeingang
> abzuschalten. Sonst ist die Zeit für den Blinky recht unerheblich ;-).

Spielt für die Verwendung als Ausgang keine Rolle.

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
Noch kein Account? Hier anmelden.