Hallo miteinander,
ich glabue ich bin grad ein bisschen betriebsblind. Ich habe einen
Tiny85. Dort initialisiere ich den ADC:
1 | void ADC_Init(void) {
|
2 | // Interne 2,54V, Pin PB0 getrennt
|
3 | ADMUX = (1 << REFS2) | (1 << REFS1);
|
4 |
|
5 | // Frequenzvorteiler auf Faktor fclk / 64
|
6 | ADCSRA = (1 << ADPS2) | (1<<ADPS1);
|
7 |
|
8 | // ADC einschalten
|
9 | ADCSRA |= (1<<ADEN);
|
10 |
|
11 | // Erste Wandlung manuell auslösen (siehe Datenblatt S. 114 - ADCSRA-Register)
|
12 | ADCSRA |= (1<<ADSC);
|
13 | while (ADCSRA & (1<<ADSC) ) { // auf Abschluss der Konvertierung warten
|
14 | }
|
15 | /* ADCW muss einmal gelesen werden, sonst wird Ergebnis der nächsten
|
16 | Wandlung nicht übernommen. */
|
17 | (void) ADCW;
|
18 | }
|
und frage dann ab:
1 | adc_val = ADC_Read(3);
|
2 |
|
3 | if (adc_val >= 0x3FF) {
|
4 | PB4_on();
|
5 | } else {
|
6 | PB4_off();
|
7 | };
|
Dann toogelt mit Pin4 schon bei 0,985V. Ich verstehe blos gerade nicht
warum? Es müssten 2,54V sein?!
Das DB sagt: "Internal 2.56V voltage reference without external bypass
capacitor, disconnected from PB0 (AREF).(1)"
Dankbar für die Hilfe :)