Gast
#1208779
Ich versuche ein stark verauschtes, langsames (ewig high - 0.5sek bis
einige sek Signal low - wieder ewig high) mittels ADC "auszulesen", dh
ich muss eigentlich nur bei einem high-low Übergang gewissen Code
ausführen.
Ursprünglich versuchte ich dies mit dem Analog Comparator - doch wegen
dem starken Rauschen führte dies zu mehrfach auslösungen (die Flanken
sind aufgrund von Kapazitäten leider auch nicht unendlich steil).
Ich verwende einen ATtiny25 mit dem Signal an ADC1 und folgendem code:
DDRB=0xfb;
ADMUX=0x81;
ADCSRA=0xe2;
ADCSRB=0x00;
DIDR0=0x04; //ausschalten des Digitaleingangs von PB2/ADC1;
//// ADC-auslesen
uint8_t adc=ADCH;
if((adc|0x03)==0x03) //oberer Bereich
{
bf0.adcLastTime=1;
}
else if((adc|0x03)!=0x02) //unterer Bereich
{
...
bf0.adcLastTime=0;
}
dies in einer Endlosschleife
da ich ja nur zwei Zustände habe sollten die 4 höchsten Bit ja genügen.
Aus irgend einem Grund funktioniert jedoch nichts (der ... code wird nie
ausgeführt) - deshalb hab ich den Verdacht, dass der ADC gar nicht
wirklich läuft ?!
vielen Dank bereits im Voraus