Timer Atmega644

Gast #4157028
Lesenswert?

Hallo, ich habe folgendes Problem.
Ich habe Timer bei µc Atmega644 konfiguriert ,aber während Interrupt 
habe ich jeder Menge vor z.B ADC abfragen , Timer Konfiguration ändern 
und so bekomme ich in Interrupt eine große Schleife.
Kann man dieser Schleife in Hauptprogramm (main,while(1)) verschieben?
Darf man während Interrupt  Funktionen aufrufen?

Hat jemand einen Tipp für mich?
Angehängte Dateien:
#4157091
Lesenswert?

Alex schrieb:
> Entschuldigung habe ich Falsche code angehängt.
> jetzt ist die Richtige

Die erste war die bessere.

Aber eigentlich ist das egal, da beide nicht funktionieren können. Der 
Controller ist mit dem Timing restlos überfordert. 1µs = 20 Takte mit 
Timer und Interrupt reichen nicht einmal für die Zeit, die der Interrupt 
mit sich selber beschäftigt ist.

Was ist denn die kürzeste Belichtungszeit?

mfg.
#4157121
Lesenswert?

Alex schrieb:
> Meinen Sie das wird nicht funktioniren...

Nein. 1µs ist zu kurz. Auch die 65µs sind viel zu kurz, wenn in diesem 
Zyklus der ADC abgefragt werden soll. Zumal sich durch die 
Timer-Konfiguration dieser Zyklus nur einmal ergibt. Aber das ist ein 
anderes Problem.

Alex schrieb:
> Belichtungszeit das ist const. Wärend Belichtungszeit wird sensor
> belichtet.

Ja, aber wie lang ist die Zeit und was macht der Sensor? Soll der 
irgendwas schalten, wenn ein bestimmter "Lichtwert" erreicht ist?

Erzähl mal genau, was das werden soll. Ich kann mir nicht vorstellen, 
dass du Raketentechnik brauchst. So, wie du davor ist, allerdings schon.

mfg.
Gast #4157138
Lesenswert?

> Erzähl mal genau, was das werden soll.
Es geht um Sensor Sony ILX554B . Sensor muss ausgelesen werden (mit 
Hilfe Atmega 644) und die ausgelesene Werte über UART an PC übertragen 
weden.Aber zuerst Sony ILX554B muss belichtet werden (um richtige werte 
zu kriegen dauert 4.2ms)Rog-start signal 5µs.
#4157157
Lesenswert?

Alex schrieb:
> Aber zuerst Sony ILX554B muss belichtet werden (um richtige werte
> zu kriegen dauert 4.2ms)
4,2ms die Lampe anmachen ist kein Problem. Die schaltet man ein und nach 
Ablauf der Zeit wieder aus.
Oder muss währenddessen am Sensor gemessen werden? Aber dazu brauchst du 
keinen Timer. Das kann der ADC alleine.

> Rog-start signal 5µs.
Ist das die Wartezeit nach dem Belichten? Das kannst du auch mit einem 
Delay machen.

Aber wo kommt die 1µs her?

mfg.
Gast #4157174
Lesenswert?

> 4,2ms die Lampe anmachen ist kein Problem. Die schaltet man ein und nach
> Ablauf der Zeit wieder aus.
> Oder muss währenddessen am Sensor gemessen werden? Aber dazu brauchst du
> keinen Timer. Das kann der ADC alleine.

Sony ILX554B hat 2048 pixel und jeder pixel soll ausgelesen werden in 
Array gespeichert und übertragen.
#4157182
Lesenswert?

Alex schrieb:
> Sony ILX554B hat 2048 pixel und jeder pixel soll ausgelesen werden in
> Array gespeichert und übertragen.

Wenn die Pixelwerte per ADC ausgelesen werden, ist die Wandlungszeit das 
maximal mögliche. Der ADC soll mit ca. 150Khz laufen und braucht 13 
Takte pro Wandlung. Das sind ungefähr 12000 Wandlungen/s. Also 5-6 
Zeilen. Da du aber sowieso nur 8-Bit-Daten speichern kannst, sonst ist 
dein RAM zu klein, kannst du ein bisschen schneller mit dem ADC. Aber 
dann hast du schon wieder das nächste Problem, nämlich die Daten 
rechtzeitig zum PC zu schicken.


mfg.

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