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?
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.
:
Bearbeitet durch User
Meinen Sie das wird nicht funktioniren... Wie macht man am besten (ich meine mit Timer)? Ich habe keine Idee mehr? Belichtungszeit das ist const. Wärend Belichtungszeit wird sensor belichtet.
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.
:
Bearbeitet durch User
> 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.
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.
> 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.
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.
:
Bearbeitet durch User
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.