Atmega8 delays

OP #2552801
Lesenswert?

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
Gast #2552876
Lesenswert?

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.
OP #2552917
Lesenswert?

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.
Gast #2552972
Lesenswert?

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.
OP #2553005
Lesenswert?

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.
Gast #2553017
Lesenswert?

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.
Gast #2553022
Lesenswert?

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
Gast #2553130
Lesenswert?

>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.
Gast #2553287
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren