Forum: Mikrocontroller und Digitale Elektronik Oszillator- und Timerkonfiguration PIC 18F4550


von Anke (Gast)


Lesenswert?

Hallo,

ich bin neu auf dem Gebiet µC und habe meine erste Schaltung aufgabaut.

Ich bin mir unsicher ob ich das mit dem Timer und dem Oszillator richtig 
gemacht habe.

Folgende Konfigurationswöter habe ich verwendet:
1
#pragma config PLLDIV = 5

soll ein Osziallator mit 20MHz sein
1
T1CON=0b10111001;

Der Timer soll durch den Osciallatortakt gesteuert werden.

Ich habe kein Oszilloskop oder der Gleichen und kann es nicht 
kontrollieren.

Das mit dem PLLDIV =5 habe ich irgendwo abgeschrieben und habe es 
versucht mit dem Datenblatt abzugleichen und habe die konfig nur in 
"OSCILLATOR CONFIGURATION OPTIONS FOR USB OPERATION" wiedergefunden.

Weiß jemand was? Kann mir jemand helfen?

Anke

von Carsten M. (ccp1con)


Lesenswert?

Deine Frage ist nicht ganz klar.
Du willst also erreichen, dass der Timer1 aller 0,05 µs (20MHz)abläuft? 
Welchen Eingangstakt hat der PIC denn, die internen 8MHz oder hast du 
einen Oszillator angeschlossen?

von Anke (Gast)


Lesenswert?

Ah. entschuldigung.

Der Oszilator ist am PIC angeschlossen und soll den Systemtakt erzeugen. 
Also 20MHz

Der Timer soll demnach nach dem Sytstemtakt ticken.

von Anke (Gast)


Lesenswert?

1
#pragma config PLLDIV = 5

In der Zeile bin ich mir noch sehr unsicher ob dadurch der Takt von 
20MHz konfiguriert ist.

Ich würde mich über eine kleine Resonanz freuen ob das so passt oder ob 
ich etwas Anderes in die config schreiben muss.

Vielen Dank und einen schönen Abend,

Anke

von Carsten M. (ccp1con)


Lesenswert?

Timer1 kann nur mit FOSC/4 "ticken". Wenn du es schneller brauchst geht 
das nur mit einem schellerem Oscillator (48MHz max). Es gibt auch die 
Möglichkeit einen Osci nur für Timer1 anzuschließen RC1/RC0.

PLLDIV = 5 ist nur ein kleiner Teil der OSC Konfiguration.
Schau mal ins Datenblatt unter Oscillator Seite 26.

z.B.
#pragma config PLLDIV   = 1
#pragma config CPUDIV   = OSC3_PLL4
#pragma config USBDIV   = 2
#pragma config FOSC     = XTPLL_XT

von Anke (Gast)


Lesenswert?

Danke Carsten.

Schneller Ticken ist nicht nötig. Ich will nur wissen wie es zu 
definieren ist und stehe dabei auf dem Schlauch.

Primär geht es mir darum meinen PIC-Arbeitstakt einzustellen.

Dafür habe ich einen 20MHz Oszillator an OSC1 und OSC2 angeschlossen 
(mit entsprechenden 15pF Kondensatoren)

Nach dem Blockschaltbild (Seite 26, Datenblatt) geht der nun auf den PLL 
Prescaler.
Da habe ich eingestellt "5". Wie ich es verstehe geht das aber nur um 
ein USB-Interface, richtig? Das habe ich nicht. Ist überflüssig?

Weiter geht er auf den CPUDIV (oscialltor prescaler). Der müsste ja wenn 
ich 20MHz haben möchte 0 sein, richtig?

Was bedeutet dann

Carsten M. schrieb:
> #pragma config CPUDIV   = OSC3_PLL4

und

Carsten M. schrieb:
> #pragma config FOSC     = XTPLL_XT

Die Ausdrücke sind im Datenblatt nicht zu finden.

Danke, Anke

von Master S. (snowman)


Lesenswert?

mein vorschlag: bringe in deiner while(1)-schleife erstmal eine LED zum 
blinken, sonst nichts; z.b. 1 sec an 1 sec aus. daraus kannst du 
schliessen, wie du deine taktquelle definert hast. das erspart uns das 
raten und dir das fragen mit sachen, die du nicht nachschlagen willst. 
melde dich anschliessend wieder.
anderer vorschlag: wenn du wirklich neu in der uC-materie bist: mach ein 
tutorial durch - z.b. ein blinklicht ;-)

von Anke (Gast)


Angehängte Dateien:

Lesenswert?

Ach diese Noobs, zu faul zum lesen. Finde ich ziemlich gemein, so eine 
Aussage.

Im Datenblatt steht wirklich wenig über die Konfiguration.

Ich habe aber eine Datei gefunden, wo weiß ich nicht mehr, die sehr 
hilfreich ist.

Da klapps auch mit der Config als Noob.

von Master S. (snowman)


Lesenswert?

die von dir ursprünglich genannte seite aus dem datenblatt, auf der du 
eine schöne übersicht über die verschiedenen taktquellen, teiler , PLL 
etc. hast, ist der schlüssel! bezeichne deine taktquelle als 'A' und 
deinen CPU-takt als 'B', nimm einen stifft und zeichne den weg von A 
nach B. dann siehst du, welche register du setzen musst, und welchen 
wert sie haben müssen.

> Das mit dem PLLDIV =5 habe ich irgendwo abgeschrieben
ich habe mal ein auto rückwärts fahren gesehen, deshalb fand ich, das 
übernehme ich mal so auf meinen fahrstil. liebes forum, warum komme ich 
nicht über 40km/h. und an alle, die mich anhupen auf der autoban: ich 
finde das ziemlich gemein...

> Ich habe aber eine Datei gefunden
[hier könnte ich das gleiche schreiben wie oben] ...nimm doch das für 
deinen PIC und nicht irgendeines ^^ ich nehme auch nicht die 
bedienungsanleitung für einen traktor, wenn ich ein auto fahren will.

ich lege dir einmal mehr seeeeehr ans herz, ein tutorial zu machen.

von Anke (Gast)


Lesenswert?

Sir, jawohl, Sir! ;-)

von Master S. (snowman)


Lesenswert?

naja, sieh's doch so, dass du dir damit selber einen gefallen machst: 
anstatt viel zeit zu verlieren, fragen stellen etc. kannst du von einem 
funktionierendem programm ausgehen, das du modifizieren kannst. wenn die 
modifikation in die richtige richtung ging, dann bravo; ansonsten 
machstes rückgängig. step by step.

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.