PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega8P Timer



red13
25.06.2011, 15:52
Hi,
ich habe mir einen Extra Microcontroller gekauft. Zum ausprobieren hab ich diesen mit ISP ein Programm draufgemacht, welches LEDs in 1-Sekunden-Takt bliken lässt. Wenn ich nun meinen alten ATmega8, der mit Bootloader das selbe Prog bekommen hat, verwende funktioniert alles. Nur der neue läuft 8-mal langsamer als der mit Bootloader. Heißt alle 8 Sek blinken sie.
Gibt es irgendeine Erklärung oder muss ich im Programm den Timer dann anpassen?

MfG red13

Richard
25.06.2011, 16:11
Hi,
ich habe mir einen Extra Microcontroller gekauft. Zum ausprobieren hab ich diesen mit ISP ein Programm draufgemacht, welches LEDs in 1-Sekunden-Takt bliken lässt. Wenn ich nun meinen alten ATmega8, der mit Bootloader das selbe Prog bekommen hat, verwende funktioniert alles. Nur der neue läuft 8-mal langsamer als der mit Bootloader. Heißt alle 8 Sek blinken sie.
Gibt es irgendeine Erklärung oder muss ich im Programm den Timer dann anpassen?

MfG red13

Neue AVR's sind normal auf 1 Mhz interner Ozzilaor eingestellt, Dein at alter möglicherweise einen externen Qarz mit höherer Frequenz. Das (die Taktfrequenz) muss dann im Programm angepasst erden damit der Compiler richtig Rechnet.

Gruß Richard

red13
25.06.2011, 16:21
Aber beide sind doch an einen Externen, warum verwendet der neue den dann nicht?

Richard
25.06.2011, 16:39
Aber beide sind doch an einen Externen, warum verwendet der neue den dann nicht?

Dazu muss in den Fusebits auf extern Quarz umgestellt werden, aber Achtung es muss die richtige Frequenz gewählt werden. Bei einen Mega 16 und 16 Mhz Quarz sieht das dann im Sudio4 so aus.......

[/URL][url]https://storage.driveonweb.de/dowdoc/1867b7c1f4c11873c6d7141f43148d14.JPG (https://storage.driveonweb.de/dowdoc/Eigene Bilder/RN_ORDNER/Fuse16MHz.JPG?sessionId=475E9D027F731FB09FD3AE1001 FA4FAC&oid=2331065)

Gruß Richard

021aet04
25.06.2011, 16:44
Wenn man einen neuen Controller kauft ist der immer so eingestellt, dass er mit 1Mhz internen Takt läuft. Sonst könnte man, wenn man keinen Quarz anschließt den µC nie programmieren. Wenn du das AVR Studio verwendest musst du im Fenster mit den Fusebits den Takt umstellen. Je nachdem, welchen Quarz du hast musst du es einstellen. Am Besten ist es, wenn du den "alten" µC nimmst, die Fuses ausließt und den "neuen" genauso einstellst.

Pass aber auf, dass du nichts falsches umstellst, sonst könntest du den µC unter Umständen nicht mehr ansprechen/auslesen/programmieren.

MfG Hannes

MfG Hannes

red13
25.06.2011, 16:59
Danke dir. Aber bevor ich was falsch mache^^:
8mHz ATmega8
welchen muss ich von den Crystal/Resonantor wählen?

Freq: Low/Medium/High
start-up time: --- CK + -- ms

edit: zu spät gelesen ich schau mal ob ich auslesen kann
---- nein geht nicht

den will ich verwenden: http://parts.digikey.com/1/parts/403828-cer-resonator-8-00mhz-ztt-8-00mt.html



Habs jetzt richtig eingestellt
Danke an euch.

021aet04
25.06.2011, 17:41
Ich habe gerade einen Mega 8 ausgelesen. Bei mir ist eingestellt High Freq. Oszillator und 16K CK+64ms. Im DB ( http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf ) auf Seite 27/28 sind die Einstellmöglichkeiten. High Freq. geht von 3-8MHz (ich habe aber einen 16MHz Oszillator). Die anderen Einstellungen sind eher für Stabilität beim Starten,...

MfG Hannes

red13
25.06.2011, 22:06
Jo die hab ich auch gewählt.
Kann man auch 2 Controller an den oben genannten ranhängen? oder soll ich beim 2ten 8mhz intern machen?
würde gerne gleiche frequenz haben

021aet04
25.06.2011, 22:55
Ich habe im Internet diesen Beitrag gefunden http://www.mikrocontroller.net/topic/188146

In einem Buch, das ich besitze ist eine Schaltung zum Verstärken des Signals von Oszillator. Müsste ich raussuchen. Oder du nutzt einen externen Takt (z.B. mit NE555), den du auf die Atmegas gibts.

Vielleicht hilft dir der weiter.

MfG Hannes

red13
26.06.2011, 11:20
Ich geb auf bei diesen Thema hilft google kaum -.-
Ich denke mal ich werde intern 8mHz verwenden, da die Kommunikation der beiden auf i²c beruht. Heißt es sind eh nur ca. 100kHz möglich.

Trotzdem danke für das eigendliche Problem =D

021aet04
26.06.2011, 19:01
Theoretisch kann man am I2C Bus mit 400kHz arbeiten. Der Bus muss aber gut aufgebaut sein (Leiterbahnen, Distanzen,...). Bei einem kannst du den Internen Takt nutzen, da der Clock vom Master kommt.

MfG Hannes