Externe Taktung (XTAL1) --> ein Pin weniger

Gast #226664
Hallo,

mein Mikrocontroller wird zurzeit extern über XTAL1 getaktet.
So wie es aussieht, wird davon der PB6-Pin beeinflusst, was eine
falsche Ansteuerung einer Segment-Anzeige zur Folge hat.

Also jetzt mal generell die Frage:
Wenn ich XTAL1 verwende, kann ich dann den PB6-Pin vom ATmega8
überhaupt nicht mehr verwenden?
Was kann ich gegen diesen Umstand machen?

DANKE.
Gast
Ich denk du kannst den internen Takt verwenden, allerdings hab ich mir
sagen lassen das der stärkeren Temperaturschwankungenunterliegt.
Die Ungenauigkeit könnte dann beim uart ein Problem werden.
Außderdem wenn du einen anderen internen Takt als 1 MHz musst du das
OSCCAL - Register manuell beschreiben.
  Chris
Gast
ja, denke ich schon.
allerdings musst dich da noch schlau machen ...
ich würde mir jetzt nicht vertrauen, weil ich mich auch grad erst damit
beschäftige,naja eigentlich bin ich schon davon überzeugt das ihn
weglassen kanns ... aber iczh will auch nix falsches sagen ...
Hier gibts doch lauter Profis schade das sich da keiner äußert...
  Chris
Gast
OK, dann steige ich jetzt wieder auf interne Taktung um...
Ich möchte meinem ATmega8 jetzt sagen, dass er mit 4MHz arbeiten soll,
dafür muss ich ja das OSCAL Register beschreiben. Mit welchem Wert?
Und wie lautet die passende Assembler Anweisung dafür???


DANKE.
Gast
Das Datenblatt gibt auf Seite 23 darüber genaue Auskunft.
OSCAL brauchst Du dafür nicht, sondern CKSEL.

Am besten schreibt man das über seinen Programmer in die Fuses ein. Da
braucht man kein Programm und merkten tut sichs der Atmel auch.
Achtung bei den Fuses ist die Logik grade andersherum: Fuse gesetzt = 0
und Fuse nicht gesetzt = 1.

HTH.
Rick
Gast
>mein Mikrocontroller wird zurzeit extern über XTAL1 getaktet.
>So wie es aussieht, wird davon der PB6-Pin beeinflusst,

Mich wundert, daß Dich das wundert! Bei XTAL1 und PB6 handelt es sich
doch um denselben Pin, oder seh ich das falsch?
Gast
Ohne die OSCCAL-Kalibrierung kann der Takt recht weit danebenliegen. Die
AVRs mit Oszillator-Revision 3.x wie der ATmega8 haben für 1, 2, 4 und
8Mhz jeweils einen eigenen RC-Oszillator und damit auch einen eigenen
Wert für die Kalibrierung. Der Wert für 1Mhz wird beim Start
automatisch in OSCCAL geladen. Wenn man einen anderen Takt verwendet,
muß man den entsprechenden Wert selbst laden. Soweit ich weiß, hat der
Controller selbst auf diesen Wert keinen Zugriff. Man kann ihn aber per
SPI auslesen und dann den benötigten Wert ins EEPROM schreiben. Von dort
aus kopiert man's dann beim Start des Mikrocontrollers ins
OSCCAL-Register.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.