PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC Interrupt?? gibts da was?



raptor_79
21.11.2005, 14:14
hallo,

ich wollt mal wissen, obs sowas wie einen ADC-Interrupt gibt.
ich will eine entfernung messen, aber den adc nicht dauernd abfragen. sondern, wenn da ein bestimmter wert erreicht wird, der avr (ATmega32) sowas wie einen Interrupt auslösen soll. mir gehts darum, nicht unnötig abfragen zu machen.

dank euch schon mal!!!

uwegw
21.11.2005, 14:50
nicht dass ich wüsste...
ne möglichkeit wäre aber, das sensorsignal parallel zum ADC an den internen komparator zu hängen, denn dann den interrupt auslösen kann... oder nen externer komparator an einem externen interruptkanal...

Klaus_0168
21.11.2005, 15:02
Hi raptor_79,

es ist jetzt zwar keine reine programmtechnische Lösung, aber wenn Du den Analogwert auf einen Komparator und den Ausgang des Komparators auf einen Interrupteingang schaltest, sollten Deine Anforderungen erfüllt sein.

Grüße Klaus

ähM_Key
21.11.2005, 15:37
Die AVRFreaks-Seite ist Down, desshalb hier der Link zu der PDF auf unsrem ftp: http://web-prokli.homeip.net/roboturag/PDF'S/ADC.pdf

Da steht eigentlich alles ganz gut beschrieben!

MK

Klaus_0168
23.11.2005, 02:49
Hi all,

meinst Du diesen hier -> http://www.avrfreaks.net/

Grüße Klaus

edit : Fehlerkorrektur

ähM_Key
23.11.2005, 06:37
Ja, jetzt geht sie wieder.

MK

EDIT: http://www.avrfreaks.net/index.php?module=FreaksTools&func=viewItem&item_id=302 ;)

Ratber
23.11.2005, 07:20
hallo,

ich wollt mal wissen, obs sowas wie einen ADC-Interrupt gibt.
ich will eine entfernung messen, aber den adc nicht dauernd abfragen. sondern, wenn da ein bestimmter wert erreicht wird, der avr (ATmega32) sowas wie einen Interrupt auslösen soll. mir gehts darum, nicht unnötig abfragen zu machen.

dank euch schon mal!!!

so wie du das Beschrieben uhast geht es nicht.

Der einzige Int. der mit dem ADC zu tun hat ist der der anzeigt das der ADC mit einer Wandlung fertig ist.

Eine Lösung wäre die die uwegw schon nannte.
Den Komparator mit dem gewünschten Wert Einstellen und wenn er dann einen Int auslöst kannst du dann entsprechend handeln.
Ein nachteil ist aber das der Schwellwert nicht so exact an den ADC angeglichen werden kann oder nur mit erheblichem Aufwand.
Praktikabel wäre es den Triggerpunkt des Komparators sicher unter der tatsächlich benötigten Schwelle zu legen.
Für den Differenzbetrag müßte dann die Software einspringen.


Die Alternative dazu wäre dann ein Externe ADC mit 10-Bit Vergleicher der dann auch den Int auslöst damit du an deine Daten kommst.

Wenn du nicht in Echtzeit reagieren mußt kannst du die Zahl der Wandlungen auch reduzieren um Rechenzeit zu sparen.
Das läst sich wunderbar mit einem Timer machen.