Forum: Mikrocontroller und Digitale Elektronik ATtiny25 Frage zum Datenblatt


von Phil (Gast)


Lesenswert?

Hallo,

ich habe momentan ein Problem den Tiny25 zu programmieren.

Ich hab ein Poti an PB2 hängen. Ue vom Spannungsteiler sind 5V.

Ich verstehe das Datenblatt nicht, wie ich Aref einstellen muss, da alle 
Pins bereits belegt sind und wenn man Vcc als AREF nimmt darf PB0 nicht 
angeschlossen sein ("VCC used as Voltage Reference, disconnected from 
PB0 (AREF)").

Bleibt also nur noch die internen 1,1V als Referenz nu nehmen. Aber wie 
wird das gemacht wenn der Spannungsteiler 5V Ue bekommt? Ich möchte 
0...255 messen über den gesamten Bereich von 0...5V

Danke

von Εrnst B. (ernst)


Lesenswert?

Phil schrieb:
> ("VCC used as Voltage Reference, disconnected from
> PB0 (AREF)").

Bedeutet: Die interne AREF (=VCC) ist nicht mit PB0 verbunden, PB0 kann 
also normal verwendet werden.

von spess53 (Gast)


Lesenswert?

Hi

>"VCC used as Voltage Reference, disconnected from PB0 (AREF)".

Na, das heisst doch, das VCC als Refenzspannung benutzt wird und PB0 zu 
freien Verfügung steht. Also genau das, was (jedenfalls in meiner 
Lesart) du willst.

MfG Spess

von Phil (Gast)


Lesenswert?

OK!

Muß ich eigentlich die internen Pullups einschalten? Sonst würden doch 
die 5V direkt gegen Massen fliessen oder nicht?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Was meinst du?
Spannungen fließen nicht...  :-o

von spess53 (Gast)


Lesenswert?

Hi

>Muß ich eigentlich die internen Pullups einschalten? Sonst würden doch
>die 5V direkt gegen Massen fliessen oder nicht?

Diesem Gedankengang kann ich jetzt nicht folgen. An dem Pin liegen keine 
5V und der Pull-Up liegt zwischen VCC und Pin.

MfG Spess

von Phil (Gast)


Lesenswert?

Ich bin neu. Ich habe keine Ahnung wie es am Eingang des AVR aussieht 
wenn er Spannung misst.

Hab jetzt DDR auf Eingan und die Pullups aus.

Mein Code funktioniert nach wie vor nicht. ADC bleibt 0:
1
void init_adc(void){
2
3
  ADMUX = 1; //PB2                      
4
  ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1); //125kHz  
5
}
6
7
void get_adc(void){
8
9
  ADCSRA |= (1<<ADSC);  // ADC starten
10
  while (bit_is_set(ADCSRA,ADSC)) ADC_Val = ADC;  // Wandlung
11
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.