Evtl ist es ein triviales Problem, aber irgendwie komm ich nicht
dahinter:
Ich missbrauche meinen AT90CAN128 als AD-Wandler; dazu folgende
einstellungen:
1 | uint16_t adc_val()
|
2 | {
|
3 | int i;
|
4 | uint16_t result;
|
5 |
|
6 | ADMUX |= (1<<MUX0);
|
7 | ADMUX |= (1<<REFS0);
|
8 | ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);
|
9 | ADCSRA |= (1<<ADSC);
|
10 |
|
11 | //dummy messung
|
12 | while ( ADCSRA & (1<<ADSC) ) {
|
13 | ;
|
14 | }
|
15 | result = ADCW;
|
16 | result = 0;
|
17 | for( i=0; i<4; i++ )
|
18 | {
|
19 | ADCSRA |= (1<<ADSC);
|
20 | while ( ADCSRA & (1<<ADSC) ) {
|
21 | ;
|
22 | }
|
23 | result += ADCW;
|
24 | }
|
25 | ADCSRA &= ~(1<<ADEN);
|
26 | result /= 4; //mittelwert
|
27 | return result;
|
28 |
|
29 | }
|
Das klappt alles wunderbar, wenn ich ein Netzteil, das mir stabile 2,7V
- 5 V liefert, anschließe.
Wenn ich jedoch eine Platine, auf der ein Sensor(ADXL335) sitzt,
anschließe, bekomme ich ständig 0 angezeigt. Das Voltmeter zeigt
wunderbare 1,65 Volt.
Wieso geht es mit dem Netzteil und nicht mit dem Sensor?
Was mache ich falsch!
Habt ihr eine Idee auf die Schnelle?