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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.