Archiv verlassen und diese Seite im Standarddesign anzeigen : Einige Fragen zu ATmega16
Hallo Leute
Ich hoffe ich bin hier nicht im Falschen Forum, aber bis jetzt hab ich für so eine "leichte" Frage noch keine Antwort bekommen.
Wie kann man bei einem ATmega16 den externen Takteingang aktivieren?
Ich habe einen ATmega16 und möchte diesen mit einem Quarz von 4MHz betreiben, die Schaltung habe ich schon aufgebaut, aber ich weiß nicht welche Fuses ich setzen muss. Ich verwende übrigens das Programm AVR Studio 4.11
Nun meine zweite Frage:
Ich versuche eine Funkübertragung zwischen PC und Roboter herzustellen, dazu verwende ich das EasyRadio, aber darum geht es jetzt noch nicht, ich will nur wissen was diese Zeile zu bedeuten hat, bzw warum?
ldi temp, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
out UCSRC, temp
Ich weiß zwar das es angeblich das Format auf 8Bit / 2Stopbit einstellt, aber da ich nicht verstehe wie man auf diese Zeile kommt kann ich auch nicht sagen ob das richtig ist. Wo ist eigentlich der unterschied zwischen einem und zwei Stopbit, ist das eine sicherere Übertragung wenn man mehr versendet? Wenn das ziemlich egal ist, wie stelle ich mein Format dann auf 8 Bit / 1 Stopbit?
Danke im Voraus, Gerko
Also für die Fusebits und weitere Fragen kann ich nur das Tutorial von mikrocontroller.net empfehlen :)
SprinterSB
20.03.2006, 14:52
Aber Obacht, externer Takt (z.B. via Quarz-Oszillaror) ist was anderes als externer Quarz!
Verdammt, sry, stimmt, hab ich vergessen :(
Im Tuturial von microcontroller.net wird das nicht über AVRStudio gemacht sondern über ein eigenes Programm, das muss doch auch ohne dem gehen oder?
Ich schätze einmal das dieses Silberne kleine Ding ein externer Quarz ist, dann muss ich also die Fuse Ext. Clock; Start-up time 6CK+0ms setzen, was auch imer das CK heißt, oder lieg ich da falsch.
DAS TUTORIAL FUNKTIONIERT NICHT FÜR DICH!
Das Tutorial nutzt einen QuarzOSZILLATOR und du einen normalen Quarz. Dafür musst du vermutlich die Fuses anders setzen!
Ich schätze einmal das dieses Silberne kleine Ding ein externer Quarz ist, dann muss ich also die Fuse Ext. Clock; Start-up time 6CK+0ms setzen, was auch imer das CK heißt, oder lieg ich da falsch.
Wenn das silberne Ding 2 Beinchen hat, musst die Fuse "Ext. Crystal/Resonator, Medium Frequ." setzen.
Die Startup-Time ist nicht so kritisch, da kannst Du ruhig das oberste nehmen.
askazo
Kann man das einfach auf gut Glück austesten oder lösen sich dann Teile der Schaltung in Rauch auf?
Außerdem hab ich sofort erkannt das das Tuturial nicht für mich geeignet ist :) aber deswegen habe ich doch versucht anhand der Fuses die verfügbar sind eine für mich denkbar sinnvolle auszuwähelen, also die
Ext. Clock; Start-up time 6CK+0ms
War deine schnelle Reaktion jetzt ein Hinweis darauf das das kompletter nonsens ist, oder wie?
Wenn du die Fuses falsch setzt, löst sich zwar nichts in Rauch auf, aber u.U. sperrst du dich aus dem Controller aus. Und dann darfst du den enweder HF-Programmieren (STK 500 etc) oder dir nen neuen kaufen.
Also mit den Fuses immer schön vorsichtig sein ;)
Ha, das war etwas posetives ich programmier sowieso alles mit STK 500 :)
Übrigens ich hab jetzt mal ein paar herausgeschrieben die passen könnten, also da währe mal:
- Ext. Clock; Start-up time 6CK+0ms
- Ext. RC-Oszillator 3-8Mhz (den schließ ich hald amal aus)
und dann wirds schwierig, da muss man dann entscheiden ob 4MHz low, medium oder high frequenz sind:
- Ext. Crystal/Resonator Low Freq.
- Ext. Crystal/Resonator Medium Freq.
- Ext. Crystal/Resonator high Freq.
Also das Wort Quarz kommt da nirgends vor, aber da ich hald Oszillatoren ausschließen kann, und nicht weiß ob low, medium oder high, versuch ich mal den Ext. Clock, oder hat wer einen besseren Vorschlag?
mfg Gerko
Also, Crystal = Quarz
askazo hat ja schon gesagt: "Wenn das silberne Ding 2 Beinchen hat, musst die Fuse "Ext. Crystal/Resonator, Medium Frequ." setzen."
Das will ich aber nicht bewerten, hab bisher nur mit Oszi gearbeitet, lässt sich aber sicherlich im Datenblatt rausfinden (RTFM ;))
Ah, danke diesen beitrag hab ich ganz überlesen, hab wahrscheinlich zur gleichen Zeit geschreiben oder so ;)
Jetzt muss ich nur noch herausfinden ob ich wirklich 8Bit 2Stopbit eingestellt habe, und dann müsste alles funktionieren, JUHU
Gerko
Hallo Leute
Nun meine zweite Frage:
Ich versuche eine Funkübertragung zwischen PC und Roboter herzustellen, dazu verwende ich das EasyRadio, aber darum geht es jetzt noch nicht, ich will nur wissen was diese Zeile zu bedeuten hat, bzw warum?
ldi temp, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
out UCSRC, temp
Ich weiß zwar das es angeblich das Format auf 8Bit / 2Stopbit einstellt, aber da ich nicht verstehe wie man auf diese Zeile kommt kann ich auch nicht sagen ob das richtig ist. Wo ist eigentlich der unterschied zwischen einem und zwei Stopbit, ist das eine sicherere Übertragung wenn man mehr versendet? Wenn das ziemlich egal ist, wie stelle ich mein Format dann auf 8 Bit / 1 Stopbit?
Schau Dir mal das Datenblatt an da findest Du alles wichtige für diese Frage unter USART
http://www.atmel.com/dyn/products/product_card.asp?part_id=2010
Mit dem Bit USBS im Register UCSRC kann man die Stop Bits einstellen
0 = 1 Stop Bit
1 = 2 Stop Bits
Weitere Infos zu dem Register UCSRC und auch UCSRA, UCSRB findest Du im Datenblatt.
cu
Habe mich wohl ein wenig in den Registern vertan - habs aber jetzt korregiert ;)
ok, das hilft mir weiter, und die schreibweise (1<<USBS) bedeutet einfach das USBS auf 1 gesetzt wird, also wenn ich 1 stopbit will dann muss ich (0<<USBS) schreiben oder?
Was hat das eigentlich für Vorteil und Nachteile wenn man 2 oder 1 Stopbit verwendet?
Der AVR Assembler erlaubt verschiedene Ausdrücke, darunter gibt es den Ausdruck << der eigentlich ein Linksschieben bedeutet. In diesem Fall kann man es aber auch so ausdrücken wie Du es getan hast - ein Bit setzten.
Vor- Nachteile von einem oder zwei Stop Bits (wird das eigentlich jetzt mit einem p oder 2 p's geschrieben? ;) ). Bei 2 Stop Bits werden (vorausgesetzt 8Nx) 11Bits pro Datenpaket übertragen (1 Startbit + 8 Datenbits + 2 Stop Bits), wohingegen bei 1 Stop Bit nur 10 Bits Übertragen werden und dadurch die Übertragnung etwas schneller ist.
Das Stop Bit legt eine Pause ein, die je nach Hardware benötigt wird und daher manchmal 2 Stop Bits notwendig sind. Kurz gesagt. Falls Deine Übertragung mit einem Stop Bit funktioniert, würde ich auch kein weiteres Stop Bit verwenden.
Ok, dann teste ich das mal mit einem Stopbit, vielleicht funktionierts ja ^^
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.