Archiv verlassen und diese Seite im Standarddesign anzeigen : waitms Funktion sehr ungenau?!
boeseTURBO-CT
19.05.2004, 00:11
Hallo Leute,
Ich brauche einen sehr genauen Timer um ein Steuerung zu realisieren und wollte dafür den Waitms-befehl benutzen. Nur leider kommt es mir so vor, als wäre der Befehl sehr ungenau. Hatte testweise mal waitms 250 eingegeben nur der tatsächliche wert lag bestimmt bei 1ner Sekunde oder so (ATMEGA 32 mit 16 MHz).... weiß jemand rat?
Gruss
Jan
ShadowPhoenix
19.05.2004, 00:15
Ich glaube, schuld sind die 16MHz übertaktung.
Lade dir das Programm "YaaP" runter (google rulz) und stell mal
die Fusebits deines Controllers auf externen Takt.
Wie du das machst, wird hier beschrieben:
http://www.mikrocontroller.net
Ich hoffe, ich konnte ein wenig helfen!
MfG,
ShadowPhoenix
Ja wird Takt sein! Hier findest du auch ne Beschreibung: https://www.roboternetz.de/phpBB2/viewtopic.php?t=849
Falls es nicht an den Fusebits liegt und du in deiner Schaltung einen einfachen Quarz mit 2 Kondensatoren verwendest, kontrolliere mal die Kondensatoren.
Ich hatte dasselbe Problem beim ATS902313. Nachdem ich die beiden Kondensatoren von denen ich dachte sie hätten 22pF gegen welche ausgetauscht habe die wirklich 22pF haben, dauerte "wait 1000" plötzlich nur noch eine Sekunde statt wie vorher knapp 4 Sekunden.
Hä? Ich hab die Schaltung von mikrocontroller.net (die Basisschaltung) und da sind gar keine Kondensatoren am Quarz... Hat jemand mal den Link mit Kondis am Quarz?
mit meinem Takt kuck ich auch gleich mal....
Danke erstmal!
Gruss
Jan
Schau hier rein https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=94
Da ist auch ein 902313 mit 4 Mhz dabei!
Hä? Ich hab die Schaltung von mikrocontroller.net (die Basisschaltung) und da sind gar keine Kondensatoren am Quarz... Hat jemand mal den Link mit Kondis am Quarz?
Das ist ja auch Quarz sondern ein Quarzoszillator. Das ist nochmal ein unterschied. Wenn du genau so eine hast ( vier Anschlüße ) dann brauchst du keine Kondensatoren. Bei einem Quarz ( zwei Anschlüße ) braucht man halt noch zwei Kondensatoren von ca. 22pf. Sieh auch:
http://www.kreatives-chaos.com/index.php?seite=avrgrund
MfG Kjion
PS: mein 500ster Beitrag ;-)
boeseTURBO-CT
19.05.2004, 13:09
achso alles klar. Dann hab ich da ja nix falsch gemacht. Hab jetzt auch die FuseBits gesetzt. Jetzt läuft die waitms auch recht genau! Kann man eigentlich auch zB. waitms 1.5 nehmen, also Koma-Werte oder werden die ignoriert?
Gruss
Jan
Hä? Ich hab die Schaltung von mikrocontroller.net (die Basisschaltung) und da sind gar keine Kondensatoren am Quarz... Hat jemand mal den Link mit Kondis am Quarz?
Das ist ja auch Quarz sondern ein Quarzoszillator. Das ist nochmal ein unterschied. Wenn du genau so eine hast ( vier Anschlüße ) dann brauchst du keine Kondensatoren. Bei einem Quarz ( zwei Anschlüße ) braucht man halt noch zwei Kondensatoren von ca. 22pf. Sieh auch:
http://www.kreatives-chaos.com/index.php?seite=avrgrund
MfG Kjion
PS: mein 500ster Beitrag ;-)
Nein das geht nicht! Nimm dann zwei Befehle:
waitms 1
waitus 500
boeseTURBO-CT
19.05.2004, 13:27
ah waitus gibs auch, das wusste ich noch gar nich ;))) danke danke!
Gruss
Jan
Hallo,
Nein das geht nicht! Nimm dann zwei Befehle:
waitms 1
waitus 500
reicht aber auch Waitus 1500 ;)
aber sehr genau wirst du damit trotzdem nicht sein, je nach Umfang deines übrigen Programms hast du eine Abweichung drin.
Für genaue Sachen benutzt man einen der Timer.
Gruss, Michael
genau ist immer relativ. fuer manche sind 10% nochh genau genung, anderen ist 0,1% abweichung schon viel zu viel. wenns genau sein muss waere assembler entv. sogar angemessener
genau sein muss waere assembler entv. sogar angemessener
Ist das was beim Bascom-Compiler hinten rauskommt nicht auch Assembler?
Bedenken muss man auch daß waitus eine Konstante erwartet und nur waitms mit variablen arbeitet.
(war bei mir relevant zur Servo-Ansteuerung)
Denke die Bascom Befehle sind genauso genau wie eine Schleife in Assembler. Der Compiler generiert daraus ja eine genaue Maschinencode Schleife. Timer ist natürlich genauer
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.