PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tochterblitz



heile
01.12.2006, 18:21
Hallo,

Bei den einfachen Digicams ist der Blitz in der Regel sehr schwach ausgelegt. Man kann ihn aber nutzen um ein externes Blitzgerät auszulösen. Schaltungen dafür gibt's bei c't, ELV, Elektor etc. Die sind allerdings relativ Bauteilaufwendig und die Plantinen sind groß.
Mit einem kleinen ATTiny könnte das auch gehen.

Fototransistor löst einen Interrupt (int0, steigende Flanke) aus, der erste Blitz (Vorblitz gegen die roten Augen) wird gezählt, beim 2. Blitz wird dann über ein Portpin ein Triac (Optokoppler) geschaltet, der den Tochterblitz auslöst. Dann wird der Blitzzähler wird wieder auf 0 gesetzt (und auch wenn nach dem 1. Blitz innerhalb einer bestimmten Zeit kein zweiter folgt.)
Eigentlich ein Vierzeiler in Bascom.

Der Tochterblitz soll ja nahezu gleichzeitig zum Hauptblitz in der Digicam ausgelöst werden. Und der Programmablauf im uC braucht ja einige Zeit: Flanke feststellen, in Interruptroutine verzweigen, Zähler abfragen und Pin einschalten.

Mein Frage nun:
Ist da so ein ATTiny (interner Oszi 9,6 MHz, extern bis zu 20 MHz) schnell genug oder ist die Verzögerung für diese Anwendung zu lang?

Gruß
Heile

Jon
01.12.2006, 18:24
20Mhz sollten eigentlich reichen. Das wären ja 20000000 Befehle pro Sekunde, die er abarbeiten kann. Das sollte reichen. Ob 9,6Mhz reichen weiß ich nicht, es sollte aber trotzdem gehen.

jon

dennisstrehl
01.12.2006, 18:52
Ich würd's in Assembler machen.
Interrupt feststellen -> k.A. wie lange das dauert
Verzweigung -> 4 Takte?
Zählregister mit Wert vergleichen+entsprechende Verzweigung -> ca. 4 Takte
Port setzen -> 2 Takte
(Alles grob über'n Daumen gepeilt)
Macht 10 Takte, also bei 9,6 MHz etwas mehr als 1/1.000.000 Sekunde.

Überhaupt dürfte (also auch in Bascom) die Verzögerung nicht problematisch werden.

Gruß,
Dennis

tobimc
01.12.2006, 20:03
Hi

Das geht bedenkenlos mit 9,6MHz.
Da der AVR ein echter RISC ist, macht er tatsächlich neun komma sechs millionen Instruktionen pro Sekunde (aber Vorsicht, der interne Oszi ist mehr ein Schätzeisen als eine zuverlässige, genaue Taktquelle. (temperaturahängig etc.)

Die Frage ist eher, ob Bascom schnell genug ist. Eigentlich hab ich da auch keine Bedenken, da Bascom einen guten Optimizer hat.

Sonst musst du das halt in C oder ASM coden, aber der Aufwand dürfte sich auch in Grenzen halten.

{Andere Frage: Why don't you try?}

VLg Ts

PS: Das alles gilt nur für den ext. Interrupt. Der ADC (z.B. Tny26) ist wesentlich langsamer!