AVR ATmega88 - Externer Interrupt - Buffer?

Gast #2688535
Hallo zusammen,

ich bin Neuling auf dem Gebiet der Mikrocontrollerprogrammierung und 
bastele gerade mit einem Lichtsensor herum. Dieser gibt mir je nach 
Lichtintensität ein Rechtecksignal mit bestimmter Frequenz heraus.

Nun zu meinem Problem, die generelle Auswertung funktioniert wie sie 
soll. Zusätzlich findet alle 10ms eine Kommunikation mit einem Funkmodul 
statt. Während dieser Zeit ist der "Externe Interrupt" ausgeschaltet. 
Beides zusammen funktioniert bis zu einer gewissen Lichtstärke bzw. 
Frequenz. Wenn ich den Sensor jedoch direkt in die Sonne halte, erhöht 
sich die Frequenz so stark dass das ganze Timing der Funkübertragung 
abbricht. Und das obwohl ich den Interrupt während der Funkgeschichte 
ausschalte.

Woran kann das liegen. Gibt es da eine Art Buffer am "externen 
Interrupt, der eine gewisse Anzahl der Ereignisse speichert?
Gast #2688542
Tim schrieb:
> Woran kann das liegen. Gibt es da eine Art Buffer am "externen
> Interrupt, der eine gewisse Anzahl der Ereignisse speichert?

ja gibt es, seht auch im Datenblatt.

Es wird genau 1 event ja interrupt gepspeichert.
Gast #2688562
Hi

>Zum zählen der Pulse kann man einen Timer nehmen, der seinen Takt aus
>einem Inputcapture-Pin bezieht.

Fast richtig. Extern wird ein Timer über das Tx-Pin getaktet. Über den 
ICP-Pin kann die Periodendauer eines Signals ausgewertet werden.

MfG Spess
(Firma: guloshop.de) #2689002
Oliver J. schrieb:
> Da hätte ich mal richtig ins Datenblatt schauen sollen. :)

Zum Thema Datenblatt:

Schaut doch mal ins Kapitel "17.0.3 External clock source". Das könnte 
die Lösung für das beschriebene Problem sein.

Damit kann man die Rechteck-Impulse zählen, ohne einen Interrupt zu 
verwenden.
Gast #2689007
Hi

>Damit kann man die Rechteck-Impulse zählen, ohne einen Interrupt zu
>verwenden.

Kann man schon mit Interrupt machen. Aber nicht mit Externen/ PinChange 
Interrupt.

MfG Spess
Persönliche Seite #2689037
Tim schrieb:
> Wenn ich den Sensor jedoch direkt in die Sonne halte, erhöht
> sich die Frequenz so stark dass das ganze Timing der Funkübertragung
> abbricht.

Was ist das denn für ein Lichtsensor? Um welche Frequenz geht es, 
rattert das Ding bei Tageslicht mit mehreren kHz?

> Und das obwohl ich den Interrupt während der Funkgeschichte
> ausschalte.

Kann nicht sein, da stimmt was nicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.