mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mhz an ATMega16


Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin drauf und dran mir eine Mikrocontrollerschaltung mit Hilfe des
Tutorials selber zusammen zu bauen. Allerdings möchte ich einen
AtMega16 verwenden. Nun ist mir das mit dem Quarzoszi nicht ganz klar:
Ist dieser überhaupt notwendig? Könnte ich auch die 16Mhz des AtMega16
voll ausreizen? Was sind Vor-und Nachteile von verschiedenen
Taktungen?

Danke
Marco

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interner Oszillator:
Geht nur bis 8MHz, nicht so übermäßig Temperaturstabil, die beiden Pins
für den Taktanschluß können anderweitig verwendet werden.

Externes Quarz:
Braucht 3 Bauteile (Quarz+2 Kondensatoren), recht genau, billig.

Quarzoszillator:
relativ groß und teuer und strahlt im HF-Bereich.

Markus

Autor: Marco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann ich nun einen 16Mhz verwenden? Warum wird im Tutorial ein 4Mhz
verwendet?

Grüße
Marco

Autor: Tetja Rediske (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab das selbe vor, wäre deswegen auch an einer Antwort interressiert.

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


ja du kannst einen 16er Quarz verwenden, wenn du nicht die L-Version
des Controllers nimmst.

> Warum wird im Tutorial ein 4Mhz verwendet?

Weil man nicht immer den schnellsten Quarz nehmen muss?! Immer so
schnell wie nötig, nicht wie möglich...

Viele Grüße

Autor: Jörg Hofmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
die 4 MHz haben sich so langsam bei AVR Controlern eingelebt. Erstens
weil die AVR Risc sowieso schnell sind, 1 Takt und meistens ein Befehl,
und zweiten wo kämen wir hin mit 16 MHz und einen Software Timer. Ich
hab mit 4 MHz schon zwei  Register in benuzung für 150ms.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@Jörg
Das versteh ich jetzt nicht. Ich komme bei 4MHz, 1024er Vorteiler und
einem 8-Bit Timer auf eine INT-Frequenz von 15,2Hz (65,536ms) Also
sollte doch ein einziges Register + CTC-Mode des Timers locker für
deine 150ms reichen.

Matthias

Autor: Martin Jansen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nur so theoretisch,
wärs möglich, nen frequenzgenerator mit ttl-pegel an den µC
anzuschliessen?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"wärs möglich, nen frequenzgenerator mit ttl-pegel an den µC
anzuschliessen?"

Sollte gehen, besser ist aber CMOS-Pegel.


Peter

Autor: Jörg Hofmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tag,

@Matthias, ich meinte einenh Software Timer wo man mit hife von
Registern und sprungbefehlen den controller neinige Zeit Beschäftigen
läst. Und die Hardware Timer sind mir für solche aufgaben einfach zu
schade. Und dann, rechne mal wie weit du kommst mit einem Register.

Bsp.

Wait1:
ldi  Tim1,255
Wait11:
dec  Tim1      ; ein Takt
brne Wait11    ; zwei Takte

3 takte  4 MHz  255 = 0,00019125 s also 191,25 µs

das sind noch keine 150 ms da muss ein zweiter Hilfszähler her.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

also ich hab immer einen frei laufenden Timer mit sowas um 1ms INT
Zeit. Sozusagen als Systemtick. Damit kann man wunderbar alle möglich
Zeiten im ms-Bereich abfangen ohne auf so einen Mist (ja Mist) wie
hartkodierte Schleifen zurückgreifen zu müssen. Sowas kann man machen
wenn man mal irgendwo ein paar µs braucht. Aber im ms-Bereich macht man
das über den Timertick.

Matthias

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frag an Matthias:

Angenommen, ich möchte folgendes realisieren:

funktion1();
delay(20ms);
function2();
delay(30ms);

Wie würdest du das machen, auch mit deinem Timertick ? Ich verstehe das
nicht so ganz, wo der Vorteil ist. Ob ich jetzt im Timer warte oder in
einer Schleife, ist doch eigentlich egal. Wäre nett, wenn du dazu mal
was sagen könntest.

Gruß
Thorsten

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Du kannst während der warterei noch andere Dinge machen wie etwa Tasten
pollen, den Watchdog bediehnen usw. Kommt eben auf die Anwendung an.
Für den Timertick muß man ja nicht unbedingt einen extra Timer
reservieren. Evtl. reicht da auch einer der PWM macht oder ähnliches.

Obiges Beispiel würde so aussehen:

funktion1();
tick=0;
while(tick<20)
{
 tuwas;
}
function2();
tick=0;
while(tick<30)
{
 tuwas;
}

Matthias

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so, alles klar. Stand auf dem Schlauch, danke !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.