www.mikrocontroller.net

Forum: Compiler & IDEs Interner Takt


Autor: heiri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich beschäftige mich erst seit kurzem mit den AVR.
im VCC-Tut konnte ich leider nichts darüber finden, wie man den internen 
Clock einstellt. Im Datenblatt des ATMega48 hats zwar schöne Tabellen, 
doch es ist kein Register angegeben.
sind die in einem speziellen Register? und wie stelle ich die um?
Konkret will ich den Takt auf 1MHz stellen, also auf den internen 8MHz 
ozilator und dann durch 8 dividieren. (dividiern kann ich, doch allein 
wird das wohl wenig bringen)

eine weitere Frage: im Datenblatt ist angegeben, dass der MC mit 2.7-5.5 
V läuft. Kann ich ihn direkt an 3 oder 4 1.2V Akkus hängen oder ist dies 
nicht empfehlenswert?

Gruss heiri

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Atmel ist ein RISC. Der teilt den Osillatortakt NICHT!
Wenn der Takt 1MHz sein soll, so brauchst du einen Quartz/RC-Osz. mit 
1MHz.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der interne R/C Oszillator des Atmega48 läuft mit 8 MHz. Du kannst 
diesen Takt runterteilen, so dass das System z.B. mit 1 MHz läuft. Das 
Runterteilen stellst du nicht mit einem Spezialregister ein (wie z.B. 
auf einem Renesas R8C möglich) sondern über eine sog. Fuse, die wie das 
Flash mit einem Programmer programmiert wird. Die Fuse heisst CHDIV8 und 
ist im Datenblatt im Kapitel 7. System Clock and Clock Options 
beschrieben. Genauer ist bei 7.2.1 Default Clock Source beschrieben, 
dass diese Fuse bereits voreingestellt ist ,d.h. wenn der Atmega48 aus 
der Fabrik kommt, ist er auf 1 MHz voreingestellt.

Du kannst Akkus wie beabsichtigt verwenden. Es gibt einige Nachrichten 
hier, dass Leute die Methode erfolgreich eingesetzt haben. Du musst aber 
die Entladekurve der Akkus im Auge behalten, denn ohne 
Spannungsüberwachung und geregeltes Runterfahren des µC ggf. mit 
unvorhersagbarem Verhalten gegen Ende der Ladekurve rechnen.


Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich verstehe die Problematik nicht.
Hab mir gerade mal das Datenblatt vom ATmega48 angesehen und natürlich 
kann man den Takt runterteilen.

Eigentlich nicht zu übersehen:
Auf Seite 37 Absatz 7.12.2 CLKPR Clock Prescale Register und folgende 
Seiten.

Der Teilerfaktor wird über die 4 Bits CLKPS0...CLKPS3 eingestellt, siehe 
Tabelle auf Seite 38.



Die ClkDiv 8 Fuse ist lediglich eine Voreinstellung einzelner Bits 
dieses Registers, würde in deinem Fall aber ausreichen.

Gruß Volker

Autor: Sigint 112 (sigint)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan:
  Die neuen AVRs haben eine BrownOut-Detection... also sollte es 
unmöglich sein den FLASH durch Unterspannung zu verändern. Praktisch 
kann das eventuell trotzdem Probleme geben.... ist aber sehr 
unwahrscheinlich.
Ich betreibe meine AVRs immer mit Batterien und hatte noch nie Probleme.
PICs konnte ich sogar mit einem Schrittmotor, einer Diode und einem 
großen Elko zuverlässig betreiben :)

Gruß,
  SIGINT

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der Atmel ist ein RISC. Der teilt den Osillatortakt NICHT!

Was hat das eine mit dem anderen zu tun?

>Wenn der Takt 1MHz sein soll, so brauchst du einen Quartz/RC-Osz. mit
>1MHz.

Und wenn er den internen Taktgenerator benutzen will, muß er die 
entsprechenden Fuses setzen, oder das von Volker beschrieben Register.

>Der Teilerfaktor wird über die 4 Bits CLKPS0...CLKPS3 eingestellt, siehe
>Tabelle auf Seite 38.

Autor: heiri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank für eure Antworten!
nun brauch ich ja offenbar gar nichts zu tun um den gewünschten Takt 
einzustellen da er standartmässig eingestellt ist. - Aber ich würde doch 
noch gern wissen womit ich die fuses verstellen kann? (Ich benutze das 
AVR-Studio)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dein ISP Adapter im AVR Studio erkannt wird, kannst du damit 
Programme in das Flash des AVR brennen UND Fuses ändern. Schau aber 
vorher doppelt und dreifach im Datenblatt nach, bevor du was 
umstellst!!! Es gibt da ein paar Fallstricke siehe auch 
http://www.mikrocontroller.net/articles/AVR_Fuses

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.