Forum: Mikrocontroller und Digitale Elektronik arduino due system clock einstellen


von Krimo E. (eniba)


Lesenswert?

Hallo zusammen,

ich möchte die 84 MHz clock verwenden in einem Programm,
wie kann ich das einstellen ????

Danke

Gruss

von STK500-Besitzer (Gast)


Lesenswert?

Das Makro "F_CPU" verwenden.

von Krimo E. (eniba)


Lesenswert?

Danke für die Antwort.
wie soll ich das bitte machen?
Konntest du mir bitte die vorgehensweise schreiben.

Ich verwende den editor Sketch vom arduino.

Gruss.

von google (Gast)


Lesenswert?

> ich möchte die 84 MHz clock verwenden in einem Programm,
> wie kann ich das einstellen ????

Warum denkst Du, dass Du das einstellen mußt?

von Krimo E. (eniba)


Lesenswert?

>Warum denkst Du, dass Du das einstellen mußt?

weil ich in einer Endlosschleife nur ein Toggle Port programmiert und 
ich messe eine Frequenz von 100 KHz, und ich erwarte normalerweise 42MHz 
wenn das SysClock auf 84MHz eingestellt ist.

von SF6 (Gast)


Lesenswert?

Krimo Eniba schrieb:
> weil ich in einer Endlosschleife nur ein Toggle Port programmiert und
> ich messe eine Frequenz von 100 KHz, und ich erwarte normalerweise 42MHz
> wenn das SysClock auf 84MHz eingestellt ist.
Das mit den 42MHz ist nicht möglich, auch nicht wenn man ASM schreibt, 
da der Sprung in der Schleife auch Zeit braucht. Hinzu kommt noch der 
ganze Arduino Overhead, dass der so groß ist hätte ich jetzt aber nicht 
gedacht.

von Krimo E. (eniba)


Lesenswert?

welche maximale frequenz kann ich erwarten?

von google (Gast)


Lesenswert?

Wenn Du (offensichtlich) Frequenzen erzeugen willst, solltest Du Dich 
eher mit Timern beschäftigen.

Ansonsten siehe hier:
http://forum.arduino.cc/index.php?topic=152140.0

von google (Gast)


Angehängte Dateien:

Lesenswert?

Aus dem Arduino-Forum:

siehe Anhang und:

> Here the results in my Due:
>
> digitalWriteDirect : 1 million blinks in 107251 uS = 9.32 MHz
> digitalWrite: 1 million blinks in 5135730 uS = 0.19 MHz

von Krimo E. (eniba)


Lesenswert?

Ea geht nicht um frequenzen zu erzeugen soder um welcher takt zyklus 
wird eine toggle port in der main funktion bearbeitet?
Gibt es die möglichkeit, dass man die maximale system clok von 84mhz zu 
verwenden?
Wenn ja, wie? Oder andersrum wie kann ich wissen mit welcher frequenz 
der controller getaktet wird.
danke.

von Tobi (Gast)


Lesenswert?

Am besten mit einen pwm Ausgang. Aus der Frequenz des ausgangs und der 
eingestellten taktteiler der pwm kann man auf die systemfrequenz 
berechnen.

von google (Gast)


Lesenswert?

Krimo Eniba schrieb:
> um welcher takt zyklus
> wird eine toggle port in der main funktion bearbeitet?
> Gibt es die möglichkeit, dass man die maximale system clok von 84mhz zu
> verwenden?
> Wenn ja, wie? Oder andersrum wie kann ich wissen mit welcher frequenz
> der controller getaktet wird.

Willst Du nun irgendwas definiert schnell schalten (nein, mit 84 MHz ist 
das meines Wissens nicht möglich) oder per software die Taktfrequenz des 
controllers "messen"/feststellen?

Vielleicht solltest Du klar sagen, was Du - insgesamt gesehen - 
erreichen willst.

von Krimo E. (eniba)


Lesenswert?

< oder per software die Taktfrequenz des controllers 
"messen"/feststellen
Ja.
weil ich denke dass der controller mit einer sehr niedrige frequenz das 
programm bearbeitet

von Wolfgang (Gast)


Lesenswert?

Krimo Eniba schrieb:
> Ja.
> weil ich denke dass der controller mit einer sehr niedrige frequenz das
> programm bearbeitet

Warum denkst du das? Wie hast du in deiner Endlosschleife deinen Portpin 
getoggled?

Guck dir den erzeugten Assemblercode an und zähle die Befehlszyklen. 
Dann weißt du, mit welcher Taktfrequenz der Prozessor arbeitet.

von google (Gast)


Lesenswert?

Krimo Eniba schrieb:

> weil ich denke dass der controller mit einer sehr niedrige frequenz das
> programm bearbeitet

Der controller arbeitet mit voller Geschwindigkeit. Dass es trotzdem 
langsam läuft, liegt an Deinem Programm. Vielleicht solltest Du das 
Programm mal vorzeigen.

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.