Wie man hier lesen kann, ist micros() bei den Arduino 8-Bittern mit einem Zähler implementiert, der alle 4 us weiterzählt
https://ucexperiment.wordpress.com/2...cros-function/
Die Einheit ist also Mikrosekunden aber die Auflösung nur 4 Mikrosekunden. Zu multiplizieren gibt es da nichts, das macht micros schon intern.
Danke für den Hinweis!
Um aber nicht wieder einen neuen Thread aufzumachen:
Nachdem ich nun gestern ATmega328 ohne Bootloader bekommen habe, war ich gezwungen, mich den halben Tag damit auseinanderzusetzen, inkl. Beschaltung und Quarz.
Ich habe mal im Datenblatt geschaut, wegen Geschwindigkeit:
Speed Grade:
̶ 0 - 4MHz@1.8 - 5.5V, 0 - 10MHz@2.7 - 5.5.V, 0 - 20MHz @ 4.5 - 5.5V
Mal gucken, ob ich das richtig denke, zum 328P:
Man kann den mit max. 10 MHz bei 3.3V betreiben?
Man kann den mit max. 20 MHz an 5V betreiben?
Die unterste Grenze liegt bei 0 Hz? - Dann tut er nichts mehr.
Den 328P findet man immer mit 16MHz@5V betrieben. Warum nicht mit 18MHz oder 20MHz?
Weniger MHz = geringere Geschwindigkeit = geringerer Stromverbrauch?
Und wenn ich schon beim Fragen bin:
Der interne Taktgeber, so habe ich im Netz gelesen, kann auch benutzt werden. Das muss aber über diese Fuse-Bits eingestellt werden. Wo ändert man die? - Wohl beim Bootlader aufspielen. Aber wo stehen die im Sketch ArduinoISP? - Dort müssten die doch zu finden sein. Oder stehen die in einer extra Datei, die man ändern muss?
Noch was zu einem externen Takt: muss das ein Quarz sein oder kann das auch was anderes sein? Wie ein Takt am Digitalausgang eines anderen Mikrokontrollers? - Dann könnte man auch an einem andern ein PWM-Pin abgreifen.
Geändert von Moppi (20.09.2018 um 05:39 Uhr)
Ich versuche mal einen Teil zu beantworten, den Rest werden ggf. Leute erklären, die sich mehr mit den AVRs auskennen.
Das stimmt nicht, ich kenne z.B. Displays, wo er als Controller verbaut ist, die arbeiten mit 10,... oder 14,... MHz. Das braucht man auch, um bestimmte Baudraten bei der seriellen Schnittstelle exakt hinzubekommen, die werden nämlich durch ganzzahlige Teilung aus dem Takt erzeugt.Den 328P findet man immer mit 16MHz@5V betrieben.
Und ich bin sicher, hier im Forum gibt es Leute, die verwenden ihn bei 20 MHz.
Das gilt für den Prozessor, aber nicht für Bauteile drum herum, wie z.B. Spannungsregler.Weniger MHz = geringere Geschwindigkeit = geringerer Stromverbrauch?
Wenn der Sketch aus der IDE gemeint ist: Gar nicht. Dieser Sketch dient dazu aus einem Arduino einen Programmer zu machen. Das ist nicht der Code für einen Bootloader.Aber wo stehen die im Sketch ArduinoISP?
Bei einem normalen Uno ist das kein Quarz, sondern aus Kostengründen ein Keramikresonator. Der ist billiger, hat aber einer größere Toleranz bei der Frequenz.muss das ein Quarz sein oder kann das auch was anderes sein?
Digitalausgang statt Quarz glaube ich nicht.
Auch darf die Frequenz eher nicht variabel sein, die Teilerverhältnisse für millis, Serial, I2C, SPI, PWM usw. sind bei den Dingern ja meist fest eingestellt.
Geändert von Mxt (20.09.2018 um 07:59 Uhr)
So etwas habe ich mir auch gedacht. Weswegen die UNOs wohl dann immer mit 16MHz betrieben werden - dazu habe ich gerade das hier gefunden: https://www.mikrocontroller.net/topic/341298
ZU den Fuse-Bits habe ich auch was passendes gefunden:
Geändert von Moppi (20.09.2018 um 09:15 Uhr)
Geändert von Mxt (20.09.2018 um 09:38 Uhr)
Lesezeichen