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.
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
Wenn ich den internen Takt benutze, hätte ich den Oszillator auch komplett weglassen können, in meiner Schaltung???
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
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.
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
>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?
OSCCAL brauchst du nur um dein Takt zu kalibrieren , falls der Takt zB. für UART zu ungenau ist. Chris
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.