Hallo zusammen, leider gibt es keinen Infrarot Timer Remote für meine Kamera, deshalb wollte ich mir einfach sowas selber bauen. Dafür habe ich mir einen Atmega8 geleistet und das Signal mittels der delay Funktion nachgebildet. Jetzt hab ich aber das Problem das die gemessenen Zeiten am Port viel länger sind. Ich habe keinen externen Quarz angeschlossen und im AVR Studio auch schon mit den Fuses rumgemacht aber das hat auch nicht den gewünschten erfolg gebracht. Bestimmt könnt ihr mir weiterhelfen ;) Danke im vorraus es grüßt der Patrick
Hmm. Eigentlich wird der CPU-Takt gleich in main in der (fast) ersten Zeile festgelegt, noch vor den Includes... sonst holt er sich nämlich einen vordefinierten. Oder irgendwo anstatt durch 1024 durch tausend geteilt...? Oder läuft' n zu langer Interrap? Das ist mir mal passiert.
Nein, deutlich länger. Ich habs mal auf nen Atmel 90USB1287 geflasht und da musste ich die Zeiten ca. mal 1/4 nehmen (4µs statt 12.5µs). Aber da hab ich es eher mit ausprobieren und nem ziemlich geilen Oszi hingekrigt.
Welchen CPU_Takt muss ich den wählen, damit ich die zeit die ich eingegeben habe auch wirklich bekomme?
Patrick R. schrieb: > Welchen CPU_Takt muss ich den wählen, damit ich die zeit die ich > eingegeben habe auch wirklich bekomme? Den, mit dem die CPU auch wirklich läuft. Wenn du nichts am µC verändert hast, sind das 1Mhz
Patrick R. schrieb: > Bestimmt könnt ihr mir > weiterhelfen ;) ich kann es mit so wenig Informationen jedenfalls nicht
>Aber 1Mhz sollte doch reichen um 12.5µs auszugeben oder?
Wie soll denn die halbe Microsekunde zustande kommen
wenn ein Assembler Befehl schon eine ganze Microsekunde braucht?
deine Schleife verbraucht auch ein paar mikrosec, und noch Mal: welche Optimierung wie sind die fuses
Walter S. schrieb: > deine Schleife verbraucht auch ein paar mikrosec, > und noch Mal: > welche Optimierung > wie sind die fuses also Fuses: -SPIEN -BOOTSZ 1024W_0C00 -BODLEVEL 2V7 -SUT_CKSEL INTRCOSC_1MHZ_6CK_64ms wo kann ich bei AVR Studio 5 die Compiler Optimierung ändern?
Patrick R. schrieb: > Aber da hab ich es eher mit ausprobieren und nem ziemlich geilen Oszi > hingekrigt. Dann schreib doch erstmal ein paar Befehle in den ATmega8, die ohne Delays und irgendwelchen Schnick-Schnack einen Port-Pin einfach nur zum Wackeln bringen und miß mit deinem geile Oszi nach, ob das mit deinen Vorstellungen und denen des Simulator konform geht.
Michael schrieb: > Dann schreib doch erstmal ein paar Befehle in den ATmega8, die ohne > Delays und irgendwelchen Schnick-Schnack einen Port-Pin einfach nur zum > Wackeln bringen und miß mit deinem geile Oszi nach, ob das mit deinen > Vorstellungen und denen des Simulator konform geht. Das Problem ist, das es nicht mein geiles Oszi ist und ich da nicht so oft ran komme.
Walter S. schrieb: > deine Schleife verbraucht auch ein paar mikrosec, > und noch Mal: > welche Optimierung > wie sind die fuses optimierung ist none
hast du die Meldung vielleicht ignoriert? Warning 1 #warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
also soweit ich weiss kannst du den CPU-Takt per SW nicht festlegen sondern nur per externen Quarz....wie man die ggf vorhandenen internen quarze einschalet....kp wenn es anders sein sollte, will ich nichts gesagt haben.
>wie man die ggf vorhandenen internen >quarze einschalet Ich hab jetzt schon hunderte von uC aufgefräst, aber einen internen Quarz habe ich nicht gefunden. Wo sind die? Wo muss ich suchen?
Walter S. schrieb: > hast du die Meldung vielleicht ignoriert? > Warning 1 #warning "Compiler optimizations disabled; functions from > <util/delay.h> won't work as designed" also Warnungen sind keine aufgetaucht, aber ich hab jetzt mal mit den Optimizations gespielt und bin jetzt der Lösung deutlich näher, aber die Kamera löst immer noch nicht aus, d.h. die Zeiten die ausgegeben werden sind immer noch nicht identisch mit denen im Quellcode.
ansonsten hätte ich ganz prakmatisch gesagt klemm nen oszilloskop dran und schau ran was rauskommt. da du denke ich mal aber selbiges nicht hast wprde ich versuchen den verzögerungsfaktor des singals hochzudrehen und eine led dranklemmen.....umzugucken ob da überhaupt was gescheites ankommt..... oder ob es an was anderes liegt. einstreuendes licht von einer leuchtstoffröhre falshgepolte bauteile oder sonst was.
holger schrieb: > Ich hab jetzt schon hunderte von uC aufgefräst, aber einen > internen Quarz habe ich nicht gefunden. Wo sind die? > Wo muss ich suchen? war die frage jetzt ernsthaft gemeint? ok ich habe mich nicht korrekt ausgedrückt soviel ich weiss haben die meisten amtegas einen internen oszillator. (und keinen quarz wie ich oben behauptet habe) den man mit hilfe der fusebust ein stellen kann http://www.google.de/#sclient=psy-ab&hl=de&source=hp&q=atmega+interner+oszillator&pbx=1&oq=atmega+interner+os&aq=0&aqi=g1&aql=&gs_sm=3&gs_upl=9918l10202l2l11331l2l2l0l0l0l0l380l380l3-1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=c2b540a2117ea26e&biw=1680&bih=911
Au weija, wieder ein Thread mit Nullblickern und Ironielegasthenikern. Das ist ja immer heiter.
>Au weija, wieder ein Thread mit Nullblickern und Ironielegasthenikern.
Klar, der OP hat nur noch nicht gerafft das das
-SUT_CKSEL INTRCOSC_1MHZ_6CK_64ms
wohl kaum geeignet ist um exakte Zeiten im us Bereich auszugeben.
_delay_us(12.5);
Das geht damit einfach nicht.
Also: Internen Takt mal auf 8MHz schrauben oder
einen 16MHz Quarz dranpappen. Dann sieht die Welt
gleich viel besser aus.
Und wenn man die IR Ausgabe mit einem Timer macht
dann sieht es noch viel entspannter aus.
Oder in der Codesammlung mal nach IRMP suchen.
Da kann er sich vieleicht ein paar Anregungen holen.
holger schrieb: > Klar, der OP hat nur noch nicht gerafft das das > > -SUT_CKSEL INTRCOSC_1MHZ_6CK_64ms > > wohl kaum geeignet ist um exakte Zeiten im us Bereich auszugeben. Dass das mit dem delay_us(12.5); nicht funktionieren kann ist klar. Das bedarf keiner Diskussion. aber warum hast du das > -SUT_CKSEL INTRCOSC_1MHZ_6CK_64ms gepostet? ist der interne Quarz so ungenau? ich versteh den Zusammenhang nicht.
der chaot schrieb: > INTRCOSC_1MHZ_6CK_64ms > ist der interne Quarz so ungenau INTRCOSC steht nicht für interner Quarz, sondern für ?
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.