Tiny13 und Spannung messen

Gast #465607
Lesenswert?

Hallo,

ich möchte einfach nur ne Spannung messen,
hab einen Tiny13 mit voreingestellter Clock, d.h. also 1,2MHz,
ich messe aber immer nur 0

// Spannung messen
ADCSRA = (1<<ADEN) | 3;
     //  enable   Teiler 8->150kHz
ADMUX = (1<<REFS0) | 2;  // interne Referenz und PB4 als Wandlereingang
for (i=0; i<2; i++)
{
  ADCSRA |= (1<<ADSC);  // start conv
  while ( ADCSRA & (1<<ADIF) )
    ;
  ADCSRA |= (1<<ADIF);
  u = ADCW;
}
ADCSRA = 0;
eeprom_write_word(&eeFooWord, u);

ich messe 2x da ich beim mega8 im Kopf hab dass der erste Wert Schrott 
ist, beim Tiny13 sollte auch eine Messung genügen.
Danach steht also immer 00 00 im EEPROM

Was mache ich falsch?
Gast #465916
Lesenswert?

keiner ne Idee?

hier noch die Initialisierung:

void ioInit (void)
{
DDRB =   0b00001001;   /* 4 (Pin3) Eingang (U-Sensor),
        3 (Pin2) Ausgang (LED)
        2 (Pin7) Eingang (Netz)
        0 (Pin5) Ausgang (PWM)  */
PORTB = 0b00000000;    // 0+3 auf 0, kein Pullup an den Eingängen
}
Gast #466010
Lesenswert?

Stunden später:

so was blödes, hätte lieber
  while ( (ADCSRA & (1<<ADIF))==0 )
anstatt
  while ( ADCSRA & (1<<ADIF) )

schreiben sollen ..., bin da auf das Tutorial "reingefallen" wo ein 
169er beschrieben ist:

  while ( ADCSRA & (1<<ADSC) )
     ;     // auf Abschluss der Konvertierung warten

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren